-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[tsan] Test __tsan_test_only_on_fork
only on Mac
#96597
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[tsan] Test __tsan_test_only_on_fork
only on Mac
#96597
Conversation
Created using spr 1.3.4 [skip ci]
Created using spr 1.3.4
@llvm/pr-subscribers-compiler-rt-sanitizer Author: Vitaly Buka (vitalybuka) ChangesAccording to https://reviews.llvm.org/D114250 The test effectively prevents to lock main allocator Full diff: https://github.com/llvm/llvm-project/pull/96597.diff 2 Files Affected:
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
index fd9441dfcb53c..2d5992b703a6a 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
@@ -35,8 +35,10 @@ extern "C" void __tsan_resume() {
__tsan_resumed = 1;
}
+#if SANITIZER_APPLE
SANITIZER_WEAK_DEFAULT_IMPL
void __tsan_test_only_on_fork() {}
+#endif
namespace __tsan {
@@ -828,7 +830,9 @@ void ForkBefore(ThreadState* thr, uptr pc) SANITIZER_NO_THREAD_SAFETY_ANALYSIS {
// Disables memory write in OnUserAlloc/Free.
thr->ignore_reads_and_writes++;
+# if SANITIZER_APPLE
__tsan_test_only_on_fork();
+# endif
}
static void ForkAfter(ThreadState* thr) SANITIZER_NO_THREAD_SAFETY_ANALYSIS {
diff --git a/compiler-rt/test/tsan/Linux/fork_deadlock.cpp b/compiler-rt/test/tsan/Darwin/fork_deadlock.cpp
similarity index 100%
rename from compiler-rt/test/tsan/Linux/fork_deadlock.cpp
rename to compiler-rt/test/tsan/Darwin/fork_deadlock.cpp
|
I am going to land dependent changes on top of this patch. If this breaks stuff on some Apple bots, instead of reverting, please just mark the test as UNSUPPORTED, and let me know. |
we're seeing the following on our mac bots:
and yeah I don't see a |
This test is broken since there's no "syscall.h". As requested in #96597, mark test as UNSUPPORTED instead of reverting.
test marked UNSUPPORTED in 8044158 |
This test is broken since there's no "syscall.h". As requested in llvm#96597, mark test as UNSUPPORTED instead of reverting.
According to https://reviews.llvm.org/D114250 this was to handle Mac specific issue, however the test is Linux only. The test effectively prevents to lock main allocator on fork, but we do that on Linux for other sanitizers for years, and need to do the same for TSAN to avoid deadlocks.
According to https://reviews.llvm.org/D114250
this was to handle Mac specific issue, however
the test is Linux only.
The test effectively prevents to lock main allocator
on fork, but we do that on Linux for other
sanitizers for years, and need to do the same
for TSAN to avoid deadlocks.