staticanalysis / data-race-test

Automatically exported from code.google.com/p/data-race-test
0 stars 0 forks source link

Crashes due to non intercepted pthread_create #73

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Chromium unittests crash with the following stack:

[Switching to thread 1 (Thread 559)]#0  0x0000000004ecb849 in rtn_call 
(nmemb=1, size=72) at tsan_rtl.cc:2631
2631        ShadowStack.end_[-1] = (uintptr_t)pc;
(gdb) bt
#0  0x0000000004ecb849 in rtn_call (nmemb=1, size=72) at tsan_rtl.cc:2631
#1  RPut (nmemb=1, size=72) at tsan_rtl.cc:462
#2  calloc (nmemb=1, size=72) at tsan_rtl.cc:1088
#3  0x00007f01ac317a8f in pa_xmalloc0 () from /usr/lib/libpulse.so.0
#4  0x00007f01ac303139 in ?? () from /usr/lib/libpulse.so.0
#5  0x00007f01a79bda09 in pa_iochannel_new () from 
/usr/lib/libpulsecommon-0.9.21.so
#6  0x00007f01a79d249e in ?? () from /usr/lib/libpulsecommon-0.9.21.so
#7  0x00007f01ac303467 in pa_mainloop_dispatch () from /usr/lib/libpulse.so.0
#8  0x00007f01ac303818 in pa_mainloop_iterate () from /usr/lib/libpulse.so.0
#9  0x00007f01ac3038c0 in pa_mainloop_run () from /usr/lib/libpulse.so.0
#10 0x00007f01ac31221b in ?? () from /usr/lib/libpulse.so.0
#11 0x00007f01a79dc0e8 in ?? () from /usr/lib/libpulsecommon-0.9.21.so
#12 0x00007f01f929a9ca in start_thread (arg=<value optimized out>) at 
pthread_create.c:300
#13 0x00007f01f3cd870d in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:112

It suggests that the thread is started inside of a non-instrumented dynamic 
library, and so tsan runtime crashes due to uninitialized thread.
We need to provide own 'pthread_create' symbol.

Original issue reported on code.google.com by dvyu...@google.com on 29 Jun 2011 at 12:16

GoogleCodeExporter commented 9 years ago
The same problem with posix_memalign(). We need to provide the symbol.

Original comment by dvyu...@google.com on 5 Jul 2011 at 6:04