Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Issues
  • #2092
Closed
Open
Issue created Dec 05, 2016 by Derek Bruening@derekbrueningContributor

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.

Assignee
Assign to
Time tracking