summaryrefslogtreecommitdiffstats
path: root/src/test/crimson/seastar_runner.h
diff options
context:
space:
mode:
authorcailianchun <arm7star@qq.com>2024-10-18 04:39:46 +0200
committerRongqi Sun <sunrongqi@huawei.com>2024-10-23 05:00:55 +0200
commit5639030d48dc3effb428df2f26535c561d551ad5 (patch)
treef262bed425fb4273f9f125fe7cc0b1a6d2118646 /src/test/crimson/seastar_runner.h
parentMerge pull request #60255 from dmick/wip-fix-container-arch (diff)
downloadceph-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.h13
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);