HANG burst_threads test failing (non-det)
Seen on CDash: http://dynamorio.org/CDash/buildSummary.php?buildid=15334
I managed to get a local repro into gdb:
(gdb) info threads
Id Target Id Frame
2 Thread 0x7f270624f700 (LWP 32604) "tool.drcacheoff" syscall_ready () at /work/dr/git/src/core/arch/x86/x86_shared.asm:180
1 Thread 0x7f27094c8740 (LWP 32599) "tool.drcacheoff" (Exiting) 0x00007f27090c259d in pthread_join () from /lib64/libpthread.so.0
(gdb) thread apply all bt
Thread 2 (Thread 0x7f270624f700 (LWP 32604)):
#0 syscall_ready () at /work/dr/git/src/core/arch/x86/x86_shared.asm:180
#1 0x0000000000007f5f in ?? ()
#2 0x00000000006f3674 in ksynch_wait (futex=0x4b4bf3c8, mustbe=0) at /work/dr/git/src/core/unix/ksynch_linux.c:120
#3 0x00000000006cf7ce in wait_for_event (e=0x4b4bf3c8) at /work/dr/git/src/core/unix/os.c:9188
#4 0x00000000006d00fd in os_take_over_all_unknown_threads (dcontext=0x4b4b5080) at /work/dr/git/src/core/unix/os.c:9447
#5 0x0000000000479358 in dynamorio_take_over_threads (dcontext=0x4b4b5080) at /work/dr/git/src/core/dynamo.c:2741
#6 0x00000000006a158b in dynamo_start (mc=0x7f270624ec40) at /work/dr/git/src/core/arch/x86_code.c:103
#7 0x00000000004790e2 in dr_app_start_helper (mc=0x7f270624ec40) at /work/dr/git/src/core/dynamo.c:2636
#8 0x00000000006a211b in dr_app_start () at /work/dr/git/src/core/arch/x86/x86.asm:516
#9 0x00007f2708610540 in ?? () from /lib64/libc.so.6
#10 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7f27094c8740 (LWP 32599)):
#0 0x00007f27090c259d in pthread_join () from /lib64/libpthread.so.0
#1 0x0000000000411847 in main ()
I suspect that it's a race where an app thread exits after DR constructs a list of app threads but before DR synchs with each one.