diff options
author | Ryan Egesdahl <ryan.egesdahl@mongodb.com> | 2020-06-17 09:43:08 -0700 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-06-26 03:07:53 +0000 |
commit | 0bba5e4470d94759f323b3015c8b5689393356c9 (patch) | |
tree | e1ed24bf70abce98ef28ad3487747aab71179f8f /SConstruct | |
parent | d1cee18fc245d9da1231ef4e8e9db09cf2987fe4 (diff) | |
download | mongo-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-- | SConstruct | 6 |
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']) |