<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/153145>153145</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Thread sanitizer fails on tests and segfaults
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Flamefire
</td>
</tr>
</table>
<pre>
I'm running the tests of LLVM 20.1.8 on Sapphire Rapids CPUs on a Rocky 8.9 system and get many failures (probably 34 out of 42 failures according to a quick grep) that show
> FATAL: ThreadSanitizer: memory layout is incompatible, even though ASLR is disabled.
They all look similar:
```
# note: command had no output on stdout or stderr
# executed command: env TSAN_OPTIONS=ignore_noninstrumented_modules=0:ignore_noninstrumented_modules=1 /build/runtimes/runtimes-bins/openmp/tools/archer/tests/critical/Output/lock.c.tmp
# note: command had no output on stdout or stderr
# error: command failed with exit status: 66
# executed command: tee /build/runtimes/runtimes-bins/openmp/tools/archer/tests/critical/Output/lock.c.tmp.log
# note: command had no output on stdout or stderr
# executed command: /build/./bin/FileCheck /source/LLVM/20.1.8/GCCcore-14.3.0/llvm-project-20.1.8.src/openmp/tools/archer/tests/critical/lock.c
# .---command stderr------------
# | /source/LLVM/20.1.8/GCCcore-14.3.0/llvm-project-20.1.8.src/openmp/tools/archer/tests/critical/lock.c:42:11: error: CHECK: expected string not found in input
# | // CHECK: DONE
# | ^
# | <stdin>:1:1: note: scanning from here
# | FATAL: ThreadSanitizer: memory layout is incompatible, even though ASLR is disabled.
# | ^
# | <stdin>:4:47: note: possible intended match here
# | 0x555555554000-0x5555555c3000 /build/runtimes/runtimes-bins/openmp/tools/archer/tests/critical/Output/lock.c.tmp
# | ^
# |
# | Input file: <stdin>
# | Check file: /source/LLVM/20.1.8/GCCcore-14.3.0/llvm-project-20.1.8.src/openmp/tools/archer/tests/critical/lock.c
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: FATAL: ThreadSanitizer: memory layout is incompatible, even though ASLR is disabled.
# | check:42'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 2: Please file a bug.
# | check:42'0 ~~~~~~~~~~~~~~~~~~~
# | 3: ==3285126==Process memory map follows:
# | check:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 4: 0x555555554000-0x5555555c3000 /build/runtimes/runtimes-bins/openmp/tools/archer/tests/critical/Output/lock.c.tmp
# | check:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:42'1 ? possible intended match
# | 5: 0x5555555c3000-0x55555567a000 /build/runtimes/runtimes-bins/openmp/tools/archer/tests/critical/Output/lock.c.tmp
# | check:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 6: 0x55555567a000-0x55555567c000 /build/runtimes/runtimes-bins/openmp/tools/archer/tests/critical/Output/lock.c.tmp
# | check:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 7: 0x55555567c000-0x555555683000 /build/runtimes/runtimes-bins/openmp/tools/archer/tests/critical/Output/lock.c.tmp
# | check:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 8: 0x555555683000-0x5555569ef000 [heap]
# | check:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 9: 0x7ffff6e43000-0x7ffff6fff000 /usr/lib64/libc-2.28.so
# | check:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
```
When running them separately some pass and some even segfault:
```
$ env TSAN_OPTIONS=ignore_noninstrumented_modules=0:ignore_noninstrumented_modules=1 /source/LLVM/20.1.8/GCCcore-14.3.0/llvm.obj.3/runtimes/runtimes-bins/openmp/tools/archer/tests/task/Output/taskwait-depend.c.tmp
ThreadSanitizer:DEADLYSIGNAL
==682483==ERROR: ThreadSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7ffff3af903b bp 0x7ffffffe8660 sp 0x7ffffffe83d0 T682483)
==682483==The signal is caused by a READ memory access.
==682483==Hint: address points to the zero page.
#0 <null> <null> (libarcher.so+0x503b) (BuildId: 38322ef050e45ea05df9cf570d413ef76bd95059)
#1 __kmpc_omp_taskwait_deps_51 <null> (libomp.so+0xe1174)
#2 foo /source/LLVM/20.1.8/GCCcore-14.3.0/llvm-project-20.1.8.src/openmp/tools/archer/tests/task/taskwait-depend.c:38:1 (taskwait-depend.c.tmp+0x125a0f)
#3 main.omp_outlined_debug__ /source/LLVM/20.1.8/GCCcore-14.3.0/llvm-project-20.1.8.src/openmp/tools/archer/tests/task/taskwait-depend.c:50:3 (taskwait-depend.c.tmp+0x125bae)
#4 main.omp_outlined /source/LLVM/20.1.8/GCCcore-14.3.0/llvm-project-20.1.8.src/openmp/tools/archer/tests/task/taskwait-depend.c:48:1 (taskwait-depend.c.tmp+0x125bae)
#5 __kmp_invoke_microtask <null> (libomp.so+0xea2b8)
#6 __kmp_invoke_task_func kmp_runtime.cpp (libomp.so+0x6744e)
#7 __kmp_fork_call <null> (libomp.so+0x61b54)
#8 __kmpc_fork_call <null> (libomp.so+0x5166c)
#9 main /source/LLVM/20.1.8/GCCcore-14.3.0/llvm-project-20.1.8.src/openmp/tools/archer/tests/task/taskwait-depend.c:48:1 (taskwait-depend.c.tmp+0x125b6f)
#10 __libc_start_main <null> (libc.so.6+0x3ad84) (BuildId: 574d156ec0c828321a4038189fc1cfe74d0bb2ec)
#11 _start <null> (taskwait-depend.c.tmp+0x6f68d)
==682483==Register values:
rax = 0x0000000000000000 rbx = 0x0000000000000000 rcx = 0x0000000000000000 rdx = 0x0000000000000000
rdi = 0x0000726c00000910 rsi = 0x0000000000000008 rbp = 0x00007ffffffe8660 rsp = 0x00007ffffffe83d0
r8 = 0x0000000000000000 r9 = 0x00007ffffffe86a0 r10 = 0x00007ffff253b980 r11 = 0x0000000000000000
r12 = 0x00007ffff5d110d0 r13 = 0x00007ffff5d11040 r14 = 0x0000000000000000 r15 = 0x0000728000002d80
ThreadSanitizer can not provide additional info.
SUMMARY: ThreadSanitizer: SEGV (/lib64/libarcher.so+0x503b) (BuildId: 38322ef050e45ea05df9cf570d413ef76bd95059)
==682483==ABORTING
```
So this is quite hard to get more info. Any ideas what might cause this or how to debug and/or resolve it?
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWVtv4zYW_jXKy4EFipRk-cEPnjieDnY6GSRpd_tkUOSRxUYiVZLKpQ_72xeUnMR24nQunXYWKOEgEg957vx4SHHn1EYjzqPsTZQtT3jva2Pnq4a3WCmLJ6WR9_N3EZ22YHutld6ArxE8Ou_AVPD-_c8_AiVxEhdgNFzyrquVRbjgnZIOTj_-5EI_hwsjru-hiGfg7p3HFriWsEEPLdf3UHHV9BYdRLTorCl52dwDS8H0PkhJ6dMILoSxclDEAIffeiWuYWOxi-gMfM09uNrcQkQWETuD1eJq8T5iC7iqLXJ5ybXy6ne0oavF1th7aPh9EKMcKC1M23GvygYjegp4gxp8bfpNDYvL9xdhjFSOlw3KOAggi6sa74E3DTTGXINTrWp4YD5So5xsf2QRUQbaeAyShWnbYH_NJWgTrOyCoRqcl4PJNjyhtdt5eIei9ygfJgYeqG_g6nLxYX3-8erd-YfLiC3VRhuLa2200s7bvkXtUa5bI_sGXcSWJGKLPxyUQERXZa8aGdGV7bVXLbqdx0mpdHg3Heq2i-jKG9OEDm5FjTZ0hOyI6EpY5ZXgTURX54OJEV01RlzHIvZt97U-sdbY3YkhQ1DCrfI14J3y4Dz3vQtD8vwVR3rEv8jiuDGbb5AJO8rH4VnpiK5WqsHTGsV1IDvTW4ERXYXlGtHVuGAjunp7eiqMxUmSxiwmQdnmpp101vyKwk_GYbGz4nONH23e6hxPJpMHO0djJjttOyianv6dmrJFSiO2SJJhaT2k1ukPZ6f_GnruOhTB7c7bAD3aeKhMryUoDUqHQO-ZEdHV0-Tl-YezXXK298ZOnZdKR-wsyN_-PeaHE3xE3cqaFmq0uDP324LbJ6ibhr_prr6dcS5IAKU9aokSWu5Ffag5ucu2LSWETB5fBSOE_LX4E9T5vHbgkafHdyERoFLN4IpdVz2NGdfk45i_e20eWDCRfdtNxoRmyxqbLqR-w5V2w75fmaYxtyEfhzEQhsevOeOWu-1u-JRAh7-X4zAsg2-X4buqihCTEQLolMB__vsN2hOoaLNdEwOAHLE-gBF8bJA7HJIFOJT95jWtX5B5hDcbs3MZsSWjRZbQfHz5aI1A5x4c2_JuG-9hDz0uObRP9MIOk4Ad8F0Awec59ftvx8xJPhPnBqxjq2OYviMm24_lELzHWOZT_k8sv7QdWcL5nsNHD-84XPzj8C9tRxw-PXC42HN48Q9afXE74vBi3-HFLqTkM6wGh2dvauRdlC2_2ilHtJgFLcjdtKqqKsd0q8T4WlXVNuq9C-FrVJmn438xoTEtYmf-_GAdUTT-iv6hlt__bYk5mbzWvuAknhzeipDFv2vUu5dLLTjsuOUem3twpkXouHPDfdHwNpR1DjcV7xu_LS737lnSb3w38nkVe2zKX2P2tZjgubvexYPwfsuVn0jsUMvHE83zOnl5tli-_-Xy3dsPi_fDpVgo9fKCpgUbn88uLs4vjtTYl2dvfwajodfX2txq4FLaUCKSO7LThls78bBOGK9mhJVQdg89VYVFnhNwez1MErjaKkJnL6p2VSM4tdG8CbW74L1DCeU9cLg4WywfClUuQtkav8jhB6VDjjwq3hmlvQNvhuPM72gNdHyDYTJElJFwPtF900TsbO-RFo0qx6jEzkT0DbnLCCsjOgu0NwH23w2XMaxglGJFMoJphpxkspqJKpsSmSYMq2leyllGstlo8lBiUZbAen3ddmJt2m79ENq1xM6ts-S5HqbtHpTAJJmme7woVMb8dQfLbWI-y8eILVjA8LBiipezNeif0IyTas8ABi1XOg6uML1vlEa5llj2m_X6uzArC0jB_tCskuOeWelzs74Lc9JPi9KhOdmYsmulb8w1rlslrAkMXs9WTstij02-zyZwWFe9FhA6tzAZi657ziufpum-StMtr8rY67XgTfOqLnlSZg8rJ6KseFiCnzY7S_Jc7EmfDfH9vwppvr_wEgLrdahe1s5z69ejPYdOELEzcT7wYFwW6XMIzKapTLIcBREFLRhNeEpYkRSzSiSiwmkqSVlSFE_OTxIYZR6IO65-XuWF3G4bL-H-BW6U82jhhjc9bu-gLL-DiC0Pdq9hBwNbvkITr9DkcVoQKdUOeUpzMdBmSZjq1MtTi6BOtztvdxcF616khf00iARbHNUI7OxFtjywTcghjWasnBUEbJK8amRCD2dmMkmIHLiyF2npQEuP-zXJ9hxXDP1UFgSelzkguB7u5DtrbpTEsN0rr8xQOOjKhO398qcff1xc_PJaoRPRYr-O_5M3fHgxVRdvzi-u3n14-7wyvgxVinKh9vmtVx6h5laG2mX4bmosjsbBQt-Dksgd3NbcQ6s2tR-rpXG-sVCb2zBx2EdDKR0gxoJFZ5obBOUjtjqRcyZnbMZPcJ5Ms3RW0KSgJ_U8FSQlRJAiJ6LIC0KzNKc0YSRnhSTF7ETNKaEZKRJKpoSRJJ5JWhRIBZJpmvGURinBlqsmHgtiuzlRzvU4TzKWpNlJw0ts3PANmlKNtzBQI0qjbHli5wNKlv3GRSlplPPuiY1XvsH5GE9wj-kQDiDDd-fxO_VwdNgeGNxJb5t57X03gMLwqWajfN2XsTDtFpMPoDmiq0GjALtblW_m9H8BAAD__9yd90w">