summaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
authorRyan Egesdahl <ryan.egesdahl@mongodb.com>2020-06-17 09:43:08 -0700
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-06-26 03:07:53 +0000
commit0bba5e4470d94759f323b3015c8b5689393356c9 (patch)
treee1ed24bf70abce98ef28ad3487747aab71179f8f /SConstruct
parentd1cee18fc245d9da1231ef4e8e9db09cf2987fe4 (diff)
downloadmongo-0bba5e4470d94759f323b3015c8b5689393356c9.tar.gz
SERVER-48933 Fix fork-after-new-thread death test failures with TSAN
The death tests fork() a new thread in a multithreaded test harness so we can test thread death behavior. Unfortunately TSAN does not support fork() after spawning a thread and will kill the thread by default, causing a test failure. This sets an unsupported TSAN flag that disables the behavior, allowing the tests to proceed. There is currently no means to limit the change to only the death tests, but the change only applies to the death tests for now.
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct6
1 files changed, 5 insertions, 1 deletions
diff --git a/SConstruct b/SConstruct
index c3708db9117..8320c68f367 100644
--- a/SConstruct
+++ b/SConstruct
@@ -2962,7 +2962,11 @@ def doConfigure(myenv):
myenv.AppendUnique(CPPDEFINES=['ADDRESS_SANITIZER'])
if using_tsan:
- tsan_options += "suppressions=\"%s\" " % myenv.File("#etc/tsan.suppressions").abspath
+ # die_after_fork=0 is a temporary setting to allow tests to continue while we figure out why
+ # we're running afoul of it. If we remove it here, it also needs to be removed from the test
+ # variant in etc/evergreen.yml
+ # TODO: https://jira.mongodb.org/browse/SERVER-49121
+ tsan_options += "die_after_fork=0:suppressions=\"%s\" " % myenv.File("#etc/tsan.suppressions").abspath
myenv['ENV']['TSAN_OPTIONS'] = tsan_options
myenv.AppendUnique(CPPDEFINES=['THREAD_SANITIZER'])