1bit-emufutex test fails under ASAN / TSAN
The test fail locally (but not in CI) when using undefined
sanitizer (it's fine when using the address
only instead)
▶ 1/1 /glib/1bit-mutex-emufutex/int - GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL) FAIL
▶ 1/1 /glib/1bit-mutex-emufutex/int - GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL) FAIL
▶ 1/1 /glib/1bit-mutex-emufutex/int - GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL) FAIL
▶ 1/1 /glib/1bit-mutex-emufutex/int - GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL) FAIL
▶ 1/1 ERROR
▶ 1/1 ERROR
▶ 1/1 ERROR
▶ 1/1 /glib/1bit-mutex-emufutex/int - GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL) FAIL
▶ 1/1 ERROR
1/1 glib:glib+core+slow+failing / 1bit-emufutex ERROR 0.08s killed by signal 6 SIGABRT
―――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――
stderr:
**
GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL)
=================================================================
**
GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL)
**
GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL)
**
GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL)
**
GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL)
==532505==ERROR: AddressSanitizer: global-buffer-overflow on address 0x5608f326e800 at pc 0x5608f32647c8 bp 0x7f0e5dfffcf0 sp 0x7f0e5dfffce0
READ of size 4 at 0x5608f326e800 thread T1
**
GLib:ERROR:../glib/tests/1bit-mutex.c:94:acquire: assertion failed: (owners[nr] == NULL)
(test program exited with status code -6)
This is very likely to the data races that TSAN higlights
WARNING: ThreadSanitizer: data race (pid=535371)
Read of size 8 at 0x5613f8886468 by thread T2:
#0 acquire ../glib/tests/1bit-mutex.c:94 (1bit-emufutex+0x2db1) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#1 thread_func ../glib/tests/1bit-mutex.c:121 (1bit-emufutex+0x2db1)
#2 g_thread_proxy ../glib/gthread.c:835 (libglib-2.0.so.0+0xbaed3) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
Previous write of size 8 at 0x5613f8886468 by thread T1:
#0 acquire ../glib/tests/1bit-mutex.c:95 (1bit-emufutex+0x2dc4) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#1 thread_func ../glib/tests/1bit-mutex.c:121 (1bit-emufutex+0x2dc4)
#2 g_thread_proxy ../glib/gthread.c:835 (libglib-2.0.so.0+0xbaed3) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
Location is global 'owners' of size 384 at 0x5613f8886340 (1bit-emufutex+0x6468)
Thread T2 'foo' (tid=535375, running) created by main thread at:
#0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1036 (libtsan.so.2+0x3d179) (BuildId: 28a9f70061dbb2dfa2cef661d3b23aff4ea13536)
#1 g_system_thread_new ../glib/gthread-posix.c:1298 (libglib-2.0.so.0+0xf99bd) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#2 g_thread_new_internal ../glib/gthread.c:939 (libglib-2.0.so.0+0xbb5b8) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#3 g_thread_new ../glib/gthread.c:892 (libglib-2.0.so.0+0xbb5b8)
#4 testcase ../glib/tests/1bit-mutex.c:150 (1bit-emufutex+0x28d9) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#5 test_case_run ../glib/gtestutils.c:2988 (libglib-2.0.so.0+0xb7d49) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#6 g_test_run_suite_internal ../glib/gtestutils.c:3090 (libglib-2.0.so.0+0xb7d49)
#7 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#8 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#9 g_test_run_suite ../glib/gtestutils.c:3189 (libglib-2.0.so.0+0xb84d1) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#10 g_test_run ../glib/gtestutils.c:2275 (libglib-2.0.so.0+0xb856f) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#11 main ../glib/tests/1bit-mutex.c:171 (1bit-emufutex+0x255c) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
Thread T1 'foo' (tid=535374, running) created by main thread at:
#0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1036 (libtsan.so.2+0x3d179) (BuildId: 28a9f70061dbb2dfa2cef661d3b23aff4ea13536)
#1 g_system_thread_new ../glib/gthread-posix.c:1298 (libglib-2.0.so.0+0xf99bd) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#2 g_thread_new_internal ../glib/gthread.c:939 (libglib-2.0.so.0+0xbb5b8) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#3 g_thread_new ../glib/gthread.c:892 (libglib-2.0.so.0+0xbb5b8)
#4 testcase ../glib/tests/1bit-mutex.c:150 (1bit-emufutex+0x28d9) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#5 test_case_run ../glib/gtestutils.c:2988 (libglib-2.0.so.0+0xb7d49) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#6 g_test_run_suite_internal ../glib/gtestutils.c:3090 (libglib-2.0.so.0+0xb7d49)
#7 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#8 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#9 g_test_run_suite ../glib/gtestutils.c:3189 (libglib-2.0.so.0+0xb84d1) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#10 g_test_run ../glib/gtestutils.c:2275 (libglib-2.0.so.0+0xb856f) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#11 main ../glib/tests/1bit-mutex.c:171 (1bit-emufutex+0x255c) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
SUMMARY: ThreadSanitizer: data race ../glib/tests/1bit-mutex.c:94 in acquire
==================
==================
WARNING: ThreadSanitizer: data race (pid=535371)
Write of size 8 at 0x5613f8886460 by thread T2:
#0 acquire ../glib/tests/1bit-mutex.c:95 (1bit-emufutex+0x2dc4) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#1 thread_func ../glib/tests/1bit-mutex.c:121 (1bit-emufutex+0x2dc4)
#2 g_thread_proxy ../glib/gthread.c:835 (libglib-2.0.so.0+0xbaed3) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
Previous write of size 8 at 0x5613f8886460 by thread T3:
#0 acquire ../glib/tests/1bit-mutex.c:95 (1bit-emufutex+0x2dc4) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#1 thread_func ../glib/tests/1bit-mutex.c:121 (1bit-emufutex+0x2dc4)
#2 g_thread_proxy ../glib/gthread.c:835 (libglib-2.0.so.0+0xbaed3) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
Location is global 'owners' of size 384 at 0x5613f8886340 (1bit-emufutex+0x6460)
Thread T2 'foo' (tid=535375, running) created by main thread at:
#0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1036 (libtsan.so.2+0x3d179) (BuildId: 28a9f70061dbb2dfa2cef661d3b23aff4ea13536)
#1 g_system_thread_new ../glib/gthread-posix.c:1298 (libglib-2.0.so.0+0xf99bd) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#2 g_thread_new_internal ../glib/gthread.c:939 (libglib-2.0.so.0+0xbb5b8) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#3 g_thread_new ../glib/gthread.c:892 (libglib-2.0.so.0+0xbb5b8)
#4 testcase ../glib/tests/1bit-mutex.c:150 (1bit-emufutex+0x28d9) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#5 test_case_run ../glib/gtestutils.c:2988 (libglib-2.0.so.0+0xb7d49) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#6 g_test_run_suite_internal ../glib/gtestutils.c:3090 (libglib-2.0.so.0+0xb7d49)
#7 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#8 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#9 g_test_run_suite ../glib/gtestutils.c:3189 (libglib-2.0.so.0+0xb84d1) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#10 g_test_run ../glib/gtestutils.c:2275 (libglib-2.0.so.0+0xb856f) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#11 main ../glib/tests/1bit-mutex.c:171 (1bit-emufutex+0x255c) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
Thread T3 'foo' (tid=535376, running) created by main thread at:
#0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1036 (libtsan.so.2+0x3d179) (BuildId: 28a9f70061dbb2dfa2cef661d3b23aff4ea13536)
#1 g_system_thread_new ../glib/gthread-posix.c:1298 (libglib-2.0.so.0+0xf99bd) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#2 g_thread_new_internal ../glib/gthread.c:939 (libglib-2.0.so.0+0xbb5b8) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#3 g_thread_new ../glib/gthread.c:892 (libglib-2.0.so.0+0xbb5b8)
#4 testcase ../glib/tests/1bit-mutex.c:150 (1bit-emufutex+0x28d9) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#5 test_case_run ../glib/gtestutils.c:2988 (libglib-2.0.so.0+0xb7d49) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#6 g_test_run_suite_internal ../glib/gtestutils.c:3090 (libglib-2.0.so.0+0xb7d49)
#7 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#8 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#9 g_test_run_suite ../glib/gtestutils.c:3189 (libglib-2.0.so.0+0xb84d1) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#10 g_test_run ../glib/gtestutils.c:2275 (libglib-2.0.so.0+0xb856f) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#11 main ../glib/tests/1bit-mutex.c:171 (1bit-emufutex+0x255c) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
SUMMARY: ThreadSanitizer: data race ../glib/tests/1bit-mutex.c:95 in acquire
==================
==================
WARNING: ThreadSanitizer: data race (pid=535371)
Write of size 8 at 0x5613f8886460 by thread T3:
#0 acquire ../glib/tests/1bit-mutex.c:95 (1bit-emufutex+0x2dc4) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#1 thread_func ../glib/tests/1bit-mutex.c:121 (1bit-emufutex+0x2dc4)
#2 g_thread_proxy ../glib/gthread.c:835 (libglib-2.0.so.0+0xbaed3) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
Previous write of size 8 at 0x5613f8886460 by thread T2:
#0 acquire ../glib/tests/1bit-mutex.c:103 (1bit-emufutex+0x2df1) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#1 thread_func ../glib/tests/1bit-mutex.c:121 (1bit-emufutex+0x2df1)
#2 g_thread_proxy ../glib/gthread.c:835 (libglib-2.0.so.0+0xbaed3) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
Location is global 'owners' of size 384 at 0x5613f8886340 (1bit-emufutex+0x6460)
Thread T3 'foo' (tid=535376, running) created by main thread at:
#0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1036 (libtsan.so.2+0x3d179) (BuildId: 28a9f70061dbb2dfa2cef661d3b23aff4ea13536)
#1 g_system_thread_new ../glib/gthread-posix.c:1298 (libglib-2.0.so.0+0xf99bd) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#2 g_thread_new_internal ../glib/gthread.c:939 (libglib-2.0.so.0+0xbb5b8) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#3 g_thread_new ../glib/gthread.c:892 (libglib-2.0.so.0+0xbb5b8)
#4 testcase ../glib/tests/1bit-mutex.c:150 (1bit-emufutex+0x28d9) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#5 test_case_run ../glib/gtestutils.c:2988 (libglib-2.0.so.0+0xb7d49) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#6 g_test_run_suite_internal ../glib/gtestutils.c:3090 (libglib-2.0.so.0+0xb7d49)
#7 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#8 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#9 g_test_run_suite ../glib/gtestutils.c:3189 (libglib-2.0.so.0+0xb84d1) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#10 g_test_run ../glib/gtestutils.c:2275 (libglib-2.0.so.0+0xb856f) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#11 main ../glib/tests/1bit-mutex.c:171 (1bit-emufutex+0x255c) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
Thread T2 'foo' (tid=535375, running) created by main thread at:
#0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1036 (libtsan.so.2+0x3d179) (BuildId: 28a9f70061dbb2dfa2cef661d3b23aff4ea13536)
#1 g_system_thread_new ../glib/gthread-posix.c:1298 (libglib-2.0.so.0+0xf99bd) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#2 g_thread_new_internal ../glib/gthread.c:939 (libglib-2.0.so.0+0xbb5b8) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#3 g_thread_new ../glib/gthread.c:892 (libglib-2.0.so.0+0xbb5b8)
#4 testcase ../glib/tests/1bit-mutex.c:150 (1bit-emufutex+0x28d9) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
#5 test_case_run ../glib/gtestutils.c:2988 (libglib-2.0.so.0+0xb7d49) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#6 g_test_run_suite_internal ../glib/gtestutils.c:3090 (libglib-2.0.so.0+0xb7d49)
#7 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#8 g_test_run_suite_internal ../glib/gtestutils.c:3109 (libglib-2.0.so.0+0xb7c0a) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#9 g_test_run_suite ../glib/gtestutils.c:3189 (libglib-2.0.so.0+0xb84d1) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#10 g_test_run ../glib/gtestutils.c:2275 (libglib-2.0.so.0+0xb856f) (BuildId: d0ac6e1dc54248d70e2de0464e4749fdebeb2ead)
#11 main ../glib/tests/1bit-mutex.c:171 (1bit-emufutex+0x255c) (BuildId: 23d7c017a1f6564e0483237d6d85a5380adbd6b9)
SUMMARY: ThreadSanitizer: data race ../glib/tests/1bit-mutex.c:95 in acquire
Edited by Marco Trevisan