diff options
author | cailianchun <arm7star@qq.com> | 2024-10-18 04:39:46 +0200 |
---|---|---|
committer | Rongqi Sun <sunrongqi@huawei.com> | 2024-10-23 05:00:55 +0200 |
commit | 5639030d48dc3effb428df2f26535c561d551ad5 (patch) | |
tree | f262bed425fb4273f9f125fe7cc0b1a6d2118646 /src/test/crimson/seastar_runner.h | |
parent | Merge pull request #60255 from dmick/wip-fix-container-arch (diff) | |
download | ceph-5639030d48dc3effb428df2f26535c561d551ad5.tar.xz ceph-5639030d48dc3effb428df2f26535c561d551ad5.zip |
test/crimson: disable stall-detector on aarch64 to fix asan failures
Ceph crimson uses seastar on debug mode which would enable ASAN, while stall-detector uses glibc backtrace function which would cause ASAN failures on aarch64.
Reason see scylladb/scylladb#15090 (comment)
Because arm ci servers in lab are "elderly", causing stall happened often, this PR is to disable stall-detector until seastar upstream migrated to libunwind, see scylladb/seastar#1878
Seastar does not provide a function to disable stall-detector, at present, increase stall-detector time to avoid stall-detector timeout on arm platform.
fixes: https://tracker.ceph.com/issues/65635
Signed-off-by: cailianchun <arm7star@qq.com>
Diffstat (limited to '')
-rw-r--r-- | src/test/crimson/seastar_runner.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/test/crimson/seastar_runner.h b/src/test/crimson/seastar_runner.h index 63cc50d9f05..590eef13adf 100644 --- a/src/test/crimson/seastar_runner.h +++ b/src/test/crimson/seastar_runner.h @@ -71,6 +71,19 @@ struct SeastarRunner { auto ret = app.run(argc, argv, [this] { on_end.reset(new seastar::readable_eventfd); return seastar::now().then([this] { +// FIXME: The stall detector uses glibc backtrace function to +// collect backtraces, this causes ASAN failures on ARM. +// For now we just extend timeout duration to 10000h in order to +// get the same effect as disabling the stall detector which is not provided by seastar. +// the ticket about migrating to libunwind: https://github.com/scylladb/seastar/issues/1878 +// Will remove once the ticket fixed. +// Ceph ticket see: https://tracker.ceph.com/issues/65635 +#ifdef __aarch64__ + seastar::smp::invoke_on_all([] { + using namespace std::chrono; + seastar::engine().update_blocked_reactor_notify_ms(duration_cast<milliseconds>(10000h)); + }).get(); +#endif begin_signaled = true; [[maybe_unused]] auto r = ::eventfd_write(begin_fd.get(), APP_RUNNING); assert(r == 0); |