Criterion aborts with error "Resource temporarily unavailable" when ThreadSanitizer is used
Test environment
- OS: 64-bit GNU/Linux
- kernel:
4.18.16-arch1-1-ARCH - logical cores: 8
- memory: 15 GiB
- gcc:
8.2.1 20180831 - clang:
7.0.0 (tags/RELEASE_700/final) - criterion:
2.3.2,2.3.3, and bleeding branch 982e569 - glibc:
2.28
Test sources
test.c:
#include <criterion/criterion.h>
Test(criterion, test)
{
}
Makefile:
all: test-gcc-tsan test-clang-tsan
test-gcc-tsan: test.c
gcc -fsanitize=thread -o $@ $^ -lcriterion
test-clang-tsan: test.c
clang -fsanitize=thread -o $@ $^ -lcriterion
clean:
-@rm -rf test-gcc-tsan test-clang-tsan
.PHONY: all clean
Problem description
Criterion aborts with the following error message when ThreadSanitizer is used, i.e. the program is compiled and linked with flag -fsanitize=thread.
criterion: Could not initialize inheritable arena: Resource temporarily unavailable
Aborted (core dumped)
This is always the case for gcc. As for clang, it would mostly show the above message, but it also sometimes show the following message (from ThreadSanitizer) or exit without any error. The result is kind of random.
ThreadSanitizer:DEADLYSIGNAL
==14227==ERROR: ThreadSanitizer: SEGV on unknown address 0x000000000001 (pc 0x7fcad82fd593 bp 0x000000000013 sp 0x7fffafb92c58 T14227)
==14227==The signal is caused by a READ memory access.
==14227==Hint: address points to the zero page.
#0 <null> <null> (libcriterion.so.3+0x16592)
#1 <null> <null> (libcriterion.so.3+0x17057)
#2 <null> <null> (libcriterion.so.3+0x6e72)
#3 <null> <null> (libcriterion.so.3+0x76c4)
#4 <null> <null> (libcriterion.so.3+0x5c53)
#5 criterion_run_all_tests <null> (libcriterion.so.3+0x641e)
#6 main <null> (libcriterion.so.3+0x5092)
#7 __libc_start_main <null> (libc.so.6+0x24222)
#8 _start <null> (test-clang-tsan+0x2015d)
ThreadSanitizer can not provide additional info.
SUMMARY: ThreadSanitizer: SEGV (/usr/lib/libcriterion.so.3+0x16592)
==14227==ABORTING
Result summary
| Compiler | Criterion 2.3.2 | Criterion 2.3.3 & bleeding branch 982e569 |
|---|---|---|
| gcc 8.2.1 | Good | "Resource temporarily unavailable" |
| clang 7.0.0 | #247 (fixed in 2.3.3) | Nondeterministic |
How to reproduce
- Install criterion 2.3.3 or from the bleeding branch.
- Get the
test.candMakefileas shown above. -
make -
./test-gcc-tsanor./test-clang-tsan
I can reproduce this.
I'm not sure how to fix this. The main problem is that the thread sanitizer reserves almost all of the virtual address space of the current process. Here is the absolutely bonkers mappings that thread sanitizer is allocating for itself:
8000000000-10000000000 ---p 00000000 00:00 0
10000000000-55555554000 rw-p 00000000 00:00 0
55555554000-55555558000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
55555558000-c0000000000 rw-p 00000000 00:00 0
c0000000000-fffc80b1000 rw-p 00000000 00:00 0
fffc80b1000-fffcc3ff000 rw-p 00000000 00:00 0
fffcc3ff000-fffd0c5d000 rw-p 00000000 00:00 0
fffd0c5d000-fffd0fff000 rw-p 00000000 00:00 0
fffd0fff000-fffd1c59000 rw-p 00000000 00:00 0
fffd1c59000-fffd1d8f000 rw-p 00000000 00:00 0
fffd1d8f000-fffd1e31000 rw-p 00000000 00:00 0
fffd1e31000-fffd1e74000 rw-p 00000000 00:00 0
fffd1e74000-fffd41f8000 rw-p 00000000 00:00 0
fffd41f8000-fffd4228000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4228000-fffd4254000 rw-p 00000000 00:00 0
fffd4254000-fffd4258000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4258000-fffd4264000 rw-p 00000000 00:00 0
fffd4264000-fffd4290000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4290000-fffd4a98000 rw-p 00000000 00:00 0
fffd4a98000-fffd4b18000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4b18000-fffd4b98000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4b98000-fffd4c18000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4c18000-fffd4c98000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4c98000-fffd4d18000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4d18000-fffd4d98000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4d98000-fffd4e18000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4e18000-fffd4e98000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4e98000-fffd4f18000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4f18000-fffd4f98000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd4f98000-fffd5018000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd5018000-fffd5088000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd5088000-fffd58a0000 rw-p 00000000 00:00 0
fffd58a0000-fffd58a4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd58a4000-fffd58b8000 rw-p 00000000 00:00 0
fffd58b8000-fffd5938000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd5938000-fffd5978000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd5978000-fffd6184000 rw-p 00000000 00:00 0
fffd6184000-fffd6204000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd6204000-fffd6284000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd6284000-fffd6304000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd6304000-fffd6384000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd6384000-fffd6404000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd6404000-fffd6484000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd6484000-fffd64e4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd64e4000-fffd6d28000 rw-p 00000000 00:00 0
fffd6d28000-fffd6da8000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd6da8000-fffd6e28000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd6e28000-fffd6e54000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd6e54000-fffd7660000 rw-p 00000000 00:00 0
fffd7660000-fffd769c000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd769c000-fffd7ea0000 rw-p 00000000 00:00 0
fffd7ea0000-fffd7f10000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd7f10000-fffd8728000 rw-p 00000000 00:00 0
fffd8728000-fffd8774000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd8774000-fffd87bc000 rw-p 00000000 00:00 0
fffd87bc000-fffd883c000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd883c000-fffd886c000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd886c000-fffd9074000 rw-p 00000000 00:00 0
fffd9074000-fffd90cc000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd90cc000-fffd9aa4000 rw-p 00000000 00:00 0
fffd9aa4000-fffd9b24000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd9b24000-fffd9ba4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd9ba4000-fffd9c24000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd9c24000-fffd9ca4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd9ca4000-fffd9d24000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd9d24000-fffd9da4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd9da4000-fffd9e24000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd9e24000-fffd9ea4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd9ea4000-fffd9f24000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd9f24000-fffd9fa4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffd9fa4000-fffda024000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda024000-fffda0a4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda0a4000-fffda120000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda120000-fffda48c000 rw-p 00000000 00:00 0
fffda48c000-fffda50c000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda50c000-fffda58c000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda58c000-fffda5bc000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda5bc000-fffda688000 rw-p 00000000 00:00 0
fffda688000-fffda708000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda708000-fffda788000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda788000-fffda804000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda804000-fffda884000 rw-p 00000000 00:00 0
fffda884000-fffda88c000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda88c000-fffda8f4000 rw-p 00000000 00:00 0
fffda8f4000-fffda974000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda974000-fffda9f4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffda9f4000-fffdaa74000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdaa74000-fffdaaf4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdaaf4000-fffdab74000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdab74000-fffdabf4000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdabf4000-fffdac08000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdac08000-fffdad14000 rw-p 00000000 00:00 0
fffdad14000-fffdad94000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdad94000-fffdada0000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdada0000-fffdadf4000 rw-p 00000000 00:00 0
fffdadf4000-fffdae38000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdae38000-fffdae84000 rw-p 00000000 00:00 0
fffdae84000-fffdaf04000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdaf04000-fffdaf84000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdaf84000-fffdb004000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdb004000-fffdb084000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdb084000-fffdb104000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdb104000-fffdb108000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdb108000-fffdb688000 rw-p 00000000 00:00 0
fffdb688000-fffdb708000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdb708000-fffdb788000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdb788000-fffdb808000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdb808000-fffdb888000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdb888000-fffdb908000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdb908000-fffdb968000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdb968000-fffdbac0000 rw-p 00000000 00:00 0
fffdbac0000-fffdbafc000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbafc000-fffdbb34000 rw-p 00000000 00:00 0
fffdbb34000-fffdbb44000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbb44000-fffdbb58000 rw-p 00000000 00:00 0
fffdbb58000-fffdbb5c000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbb5c000-fffdbbf0000 rw-p 00000000 00:00 0
fffdbbf0000-fffdbc70000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbc70000-fffdbcf0000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbcf0000-fffdbd70000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbd70000-fffdbdf0000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbdf0000-fffdbe70000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbe70000-fffdbef0000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbef0000-fffdbf70000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbf70000-fffdbff0000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdbff0000-fffdc070000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdc070000-fffdc0f0000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdc0f0000-fffdc11c000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdc11c000-fffdc290000 rw-p 00000000 00:00 0
fffdc290000-fffdc310000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdc310000-fffdc31c000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdc31c000-fffdc3e8000 rw-p 00000000 00:00 0
fffdc3e8000-fffdc468000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdc468000-fffdc4e8000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdc4e8000-fffdc568000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdc568000-fffdc5e8000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdc5e8000-fffdc638000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdc638000-fffdff54000 rw-p 00000000 00:00 0
fffdff54000-fffdffd0000 r--p 00000000 00:29 17876522 /tmp/tsan.rodata.11340 (deleted)
fffdffd0000-100000000000 rw-p 00000000 00:00 0
100000000000-1f1000001000 rw-p 00000000 00:00 0
1f1000001000-1f1000047000 rw-p 00000000 00:00 0
1f1000047000-200000000000 rw-p 00000000 00:00 0
200000000000-300000000000 ---p 00000000 00:00 0
300000000000-33fff9016000 rw-p 00000000 00:00 0
33fff9016000-33fff987f000 rw-p 00000000 00:00 0
33fff987f000-33fffa18c000 rw-p 00000000 00:00 0
33fffa18c000-33fffa1ff000 rw-p 00000000 00:00 0
33fffa1ff000-33fffa38b000 rw-p 00000000 00:00 0
33fffa38b000-33fffa3b1000 rw-p 00000000 00:00 0
33fffa3b1000-33fffbfd4000 rw-p 00000000 00:00 0
33fffbfd4000-33fffbfd7000 rw-p 00000000 00:00 0
33fffbfd7000-340000000000 rw-p 00000000 00:00 0
340000000000-550000000000 ---p 00000000 00:00 0
568000000000-600000000000 ---p 00000000 00:00 0
600000000000-600000100000 rw-p 00000000 00:00 0
600000100000-600001000000 ---p 00000000 00:00 0
600001000000-60000108a000 rw-p 00000000 00:00 0
60000111b000-600001130000 ---p 00000000 00:00 0
600001130000-600001230000 rw-p 00000000 00:00 0
600001230000-600002130000 ---p 00000000 00:00 0
600002130000-6000021ba000 rw-p 00000000 00:00 0
60000224b000-7b0400000000 ---p 00000000 00:00 0
7b0400000000-7b0400010000 rw-p 00000000 00:00 0
7b0400010000-7b0780000000 ---p 00000000 00:00 0
7b0780000000-7b0780010000 rw-p 00000000 00:00 0
7b0780010000-7b0800000000 ---p 00000000 00:00 0
7b0800000000-7b0800010000 rw-p 00000000 00:00 0
7b0800010000-7b0b80000000 ---p 00000000 00:00 0
7b0b80000000-7b0b80010000 rw-p 00000000 00:00 0
7b0b80010000-7b0c00000000 ---p 00000000 00:00 0
7b0c00000000-7b0c00010000 rw-p 00000000 00:00 0
7b0c00010000-7b0f80000000 ---p 00000000 00:00 0
7b0f80000000-7b0f80010000 rw-p 00000000 00:00 0
7b0f80010000-7b1000000000 ---p 00000000 00:00 0
7b1000000000-7b1000010000 rw-p 00000000 00:00 0
7b1000010000-7b1380000000 ---p 00000000 00:00 0
7b1380000000-7b1380010000 rw-p 00000000 00:00 0
7b1380010000-7b1400000000 ---p 00000000 00:00 0
7b1400000000-7b1400010000 rw-p 00000000 00:00 0
7b1400010000-7b1780000000 ---p 00000000 00:00 0
7b1780000000-7b1780010000 rw-p 00000000 00:00 0
7b1780010000-7b1800000000 ---p 00000000 00:00 0
7b1800000000-7b1800010000 rw-p 00000000 00:00 0
7b1800010000-7b1b80000000 ---p 00000000 00:00 0
7b1b80000000-7b1b80010000 rw-p 00000000 00:00 0
7b1b80010000-7b1c00000000 ---p 00000000 00:00 0
7b1c00000000-7b1c00010000 rw-p 00000000 00:00 0
7b1c00010000-7b1f80000000 ---p 00000000 00:00 0
7b1f80000000-7b1f80010000 rw-p 00000000 00:00 0
7b1f80010000-7b2000000000 ---p 00000000 00:00 0
7b2000000000-7b2000010000 rw-p 00000000 00:00 0
7b2000010000-7b2380000000 ---p 00000000 00:00 0
7b2380000000-7b2380010000 rw-p 00000000 00:00 0
7b2380010000-7b2c00000000 ---p 00000000 00:00 0
7b2c00000000-7b2c00010000 rw-p 00000000 00:00 0
7b2c00010000-7b2f80000000 ---p 00000000 00:00 0
7b2f80000000-7b2f80010000 rw-p 00000000 00:00 0
7b2f80010000-7b3000000000 ---p 00000000 00:00 0
7b3000000000-7b3000010000 rw-p 00000000 00:00 0
7b3000010000-7b3380000000 ---p 00000000 00:00 0
7b3380000000-7b3380010000 rw-p 00000000 00:00 0
7b3380010000-7b3800000000 ---p 00000000 00:00 0
7b3800000000-7b3800010000 rw-p 00000000 00:00 0
7b3800010000-7b3b80000000 ---p 00000000 00:00 0
7b3b80000000-7b3b80010000 rw-p 00000000 00:00 0
7b3b80010000-7b4400000000 ---p 00000000 00:00 0
7b4400000000-7b4400010000 rw-p 00000000 00:00 0
7b4400010000-7b4780000000 ---p 00000000 00:00 0
7b4780000000-7b4780010000 rw-p 00000000 00:00 0
7b4780010000-7b4800000000 ---p 00000000 00:00 0
7b4800000000-7b4800010000 rw-p 00000000 00:00 0
7b4800010000-7b4b80000000 ---p 00000000 00:00 0
7b4b80000000-7b4b80010000 rw-p 00000000 00:00 0
7b4b80010000-7b4c00000000 ---p 00000000 00:00 0
7b4c00000000-7b4c00010000 rw-p 00000000 00:00 0
7b4c00010000-7b4f80000000 ---p 00000000 00:00 0
7b4f80000000-7b4f80010000 rw-p 00000000 00:00 0
7b4f80010000-7b5000000000 ---p 00000000 00:00 0
7b5000000000-7b5000010000 rw-p 00000000 00:00 0
7b5000010000-7b5380000000 ---p 00000000 00:00 0
7b5380000000-7b5380010000 rw-p 00000000 00:00 0
7b5380010000-7b5400000000 ---p 00000000 00:00 0
7b5400000000-7b5400010000 rw-p 00000000 00:00 0
7b5400010000-7b5780000000 ---p 00000000 00:00 0
7b5780000000-7b5780010000 rw-p 00000000 00:00 0
7b5780010000-7b5800000000 ---p 00000000 00:00 0
7b5800000000-7b5800010000 rw-p 00000000 00:00 0
7b5800010000-7b5b80000000 ---p 00000000 00:00 0
7b5b80000000-7b5b80010000 rw-p 00000000 00:00 0
7b5b80010000-7b5c00000000 ---p 00000000 00:00 0
7b5c00000000-7b5c00010000 rw-p 00000000 00:00 0
7b5c00010000-7b5f80000000 ---p 00000000 00:00 0
7b5f80000000-7b5f80010000 rw-p 00000000 00:00 0
7b5f80010000-7b6800000000 ---p 00000000 00:00 0
7b6800000000-7b6800010000 rw-p 00000000 00:00 0
7b6800010000-7b6b80000000 ---p 00000000 00:00 0
7b6b80000000-7b6b80010000 rw-p 00000000 00:00 0
7b6b80010000-7b7000000000 ---p 00000000 00:00 0
7b7000000000-7b7000020000 rw-p 00000000 00:00 0
7b7000020000-7b7380000000 ---p 00000000 00:00 0
7b7380000000-7b7380010000 rw-p 00000000 00:00 0
7b7380010000-7b8400000000 ---p 00000000 00:00 0
7b8400000000-7b8400010000 rw-p 00000000 00:00 0
7b8400010000-7b8780000000 ---p 00000000 00:00 0
7b8780000000-7b8780010000 rw-p 00000000 00:00 0
7b8780010000-7ba000000000 ---p 00000000 00:00 0
7b4c00000000-7b4c00010000 rw-p 00000000 00:00 0
7b4c00010000-7b4f80000000 ---p 00000000 00:00 0
7b4f80000000-7b4f80010000 rw-p 00000000 00:00 0
7b4f80010000-7b5000000000 ---p 00000000 00:00 0
7b5000000000-7b5000010000 rw-p 00000000 00:00 0
7b5000010000-7b5380000000 ---p 00000000 00:00 0
7b5380000000-7b5380010000 rw-p 00000000 00:00 0
7b5380010000-7b5400000000 ---p 00000000 00:00 0
7b5400000000-7b5400010000 rw-p 00000000 00:00 0
7b5400010000-7b5780000000 ---p 00000000 00:00 0
7b5780000000-7b5780010000 rw-p 00000000 00:00 0
7b5780010000-7b5800000000 ---p 00000000 00:00 0
7b5800000000-7b5800010000 rw-p 00000000 00:00 0
7b5800010000-7b5b80000000 ---p 00000000 00:00 0
7b5b80000000-7b5b80010000 rw-p 00000000 00:00 0
7b5b80010000-7b5c00000000 ---p 00000000 00:00 0
7b5c00000000-7b5c00010000 rw-p 00000000 00:00 0
7b5c00010000-7b5f80000000 ---p 00000000 00:00 0
7b5f80000000-7b5f80010000 rw-p 00000000 00:00 0
7b5f80010000-7b6800000000 ---p 00000000 00:00 0
7b6800000000-7b6800010000 rw-p 00000000 00:00 0
7b6800010000-7b6b80000000 ---p 00000000 00:00 0
7b6b80000000-7b6b80010000 rw-p 00000000 00:00 0
7b6b80010000-7b7000000000 ---p 00000000 00:00 0
7b7000000000-7b7000020000 rw-p 00000000 00:00 0
7b7000020000-7b7380000000 ---p 00000000 00:00 0
7b7380000000-7b7380010000 rw-p 00000000 00:00 0
7b7380010000-7b8400000000 ---p 00000000 00:00 0
7b8400000000-7b8400010000 rw-p 00000000 00:00 0
7b8400010000-7b8780000000 ---p 00000000 00:00 0
7b8780000000-7b8780010000 rw-p 00000000 00:00 0
7b8780010000-7ba000000000 ---p 00000000 00:00 0
7ba000000000-7ba000010000 rw-p 00000000 00:00 0
7ba000010000-7ba380000000 ---p 00000000 00:00 0
7ba380000000-7ba380010000 rw-p 00000000 00:00 0
7ba380010000-7bc400000000 ---p 00000000 00:00 0
7bc400000000-7bc400020000 rw-p 00000000 00:00 0
7bc400020000-7bc780000000 ---p 00000000 00:00 0
7bc780000000-7bc780010000 rw-p 00000000 00:00 0
7bc780010000-7c0000000000 ---p 00000000 00:00 0
7c0000000000-7c0000003000 rw-p 00000000 00:00 0
7c0000003000-7e8000000000 ---p 00000000 00:00 0
So yeah, that's about 124TB of virtual address space, that I guess is reserved to check for invalid memory accesses?
It might be worth a try to map some memory before 0x8000000000, but it's still an insane workaround for an insane implementation.
Reading the code for TSan, it looks like they work with a shadow region that is four times the size of the "user" address space. With a 48-bit address space on 64-bits, that means that the only possible range for "user" memory is 0-0x8000000000.
So it makes sense on TSan's end, but that leaves BoxFort with a problem.
A possible workaround could be to try and probe the available symbols to look for kHiAppMemEnd, if tsan exports that symbol. I could also try to bite the bullet and rewrite the arena code for BoxFort so that it probes the address space properly to try and find an appropriate region.