From bc658272d35ed42e86bec31c053e769b485a8b13 Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Sun, 19 Jan 2020 15:54:48 +0800 Subject: [PATCH] test/crimson: add delay when stopping seastar Seastar has bugs to have events undispatched during shutdown, which will result in memory leak and thus fail LeakSanitizer. Notably, there is a chance to lose the the destruction task of foreign_ptr> submitted by conntrack::~handle(). See https://github.com/scylladb/seastar/blob/96ccbbe5262bed6d50a2392f6a77e84a490503b2/include/seastar/net/posix-stack.hh#L86-L89 Signed-off-by: Yingxin Cheng --- src/test/crimson/test_messenger.cc | 3 +++ src/test/crimson/test_socket.cc | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/test/crimson/test_messenger.cc b/src/test/crimson/test_messenger.cc index 83bd2a051d097..322c4f4b5fddb 100644 --- a/src/test/crimson/test_messenger.cc +++ b/src/test/crimson/test_messenger.cc @@ -3715,6 +3715,9 @@ int main(int argc, char** argv) return test_v2_protocol(v2_test_addr, v2_testpeer_addr, v2_testpeer_islocal); }).then([] { std::cout << "All tests succeeded" << std::endl; + // Seastar has bugs to have events undispatched during shutdown, + // which will result in memory leak and thus fail LeakSanitizer. + return seastar::sleep(100ms); }).handle_exception([] (auto eptr) { std::cout << "Test failure" << std::endl; return seastar::make_exception_future<>(eptr); diff --git a/src/test/crimson/test_socket.cc b/src/test/crimson/test_socket.cc index 29dd2cdb37bc8..fc2e7ac20b6d5 100644 --- a/src/test/crimson/test_socket.cc +++ b/src/test/crimson/test_socket.cc @@ -434,6 +434,9 @@ int main(int argc, char** argv) return test_preemptive_down(); }).then([] { logger.info("All tests succeeded"); + // Seastar has bugs to have events undispatched during shutdown, + // which will result in memory leak and thus fail LeakSanitizer. + return seastar::sleep(100ms); }).handle_exception([] (auto eptr) { std::cout << "Test failure" << std::endl; return seastar::make_exception_future<>(eptr); -- 2.39.5