[Issue 11981] New: unittest 'host' deadlock

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Jan 23 21:29:12 PST 2014


https://d.puremagic.com/issues/show_bug.cgi?id=11981

           Summary: unittest 'host' deadlock
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: druntime
        AssignedTo: nobody at puremagic.com
        ReportedBy: braddr at puremagic.com


--- Comment #0 from Brad Roberts <braddr at puremagic.com> 2014-01-23 21:29:09 PST ---
The deadlock is extremely rare, but I managed to remember to capture the
stacktraces of an example before killing the process this time.  It looks like
the suspend signal happened while in the alloc library was in use and the
subsequently called a function that needed to alloc.  I'll bet that
tls_get_addr_tail isn't legal to call from a signal handler.  Filed as OS
'all', but it's really all posix quite likely.

Thread 1 (Thread 0x2b40440adf40 (LWP 5616)):
#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
#1  0x00002b4044abcdb9 in core.thread.suspend() () from
/home/braddr/sandbox/d/d-tester/client/pull-869498-Linux_64_64/druntime/lib/libdruntime-linux64.so
#2  0x00002b4044abcfac in thread_suspendAll () from
/home/braddr/sandbox/d/d-tester/client/pull-869498-Linux_64_64/druntime/lib/libdruntime-linux64.so
#3  0x00002b4044ac7c73 in gc.gc.Gcx.fullcollect() () from
/home/braddr/sandbox/d/d-tester/client/pull-869498-Linux_64_64/druntime/lib/libdruntime-linux64.so
#4  0x00002b4044ac629b in gc.gc.GC.fullCollect() () from
/home/braddr/sandbox/d/d-tester/client/pull-869498-Linux_64_64/druntime/lib/libdruntime-linux64.so
#5  0x00002b4044ac9867 in gc_collect () from
/home/braddr/sandbox/d/d-tester/client/pull-869498-Linux_64_64/druntime/lib/libdruntime-linux64.so
#6  0x00002b4044aba5f9 in core.memory.GC.collect() () from
/home/braddr/sandbox/d/d-tester/client/pull-869498-Linux_64_64/druntime/lib/libdruntime-linux64.so
#7  0x00002b4045434469 in ?? ()
#8  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x2b4045836700 (LWP 5620)):
#0  __lll_lock_wait_private () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95
#1  0x00002b4044517b8c in _L_lock_152 () at malloc.c:5151
#2  0x00002b404451076b in get_free_list () at arena.c:774
#3  0x00002b4044515535 in arena_get2 (avoid_arena=<optimized out>,
size=<optimized out>, a_tsd=<optimized out>) at arena.c:838
#4  __GI___libc_malloc (bytes=88) at malloc.c:2856
#5  0x00002b404406a2ad in allocate_and_init (map=0xe25640) at dl-tls.c:529
#6  tls_get_addr_tail (ti=0x2b4044cfabd0, dtv=0xe344d0, the_map=0xe25640) at
dl-tls.c:742
#7  0x00002b4044abb6ec in core.thread.thread_suspendHandler() () from
/home/braddr/sandbox/d/d-tester/client/pull-869498-Linux_64_64/druntime/lib/libdruntime-linux64.so
#8  0x00002b4044abcd00 in core.thread.callWithStackShell() () from
/home/braddr/sandbox/d/d-tester/client/pull-869498-Linux_64_64/druntime/lib/libdruntime-linux64.so
#9  0x00002b4044abb6ca in thread_suspendHandler () from
/home/braddr/sandbox/d/d-tester/client/pull-869498-Linux_64_64/druntime/lib/libdruntime-linux64.so
#10 <signal handler called>
#11 0x00002b404451077e in get_free_list () at arena.c:777
#12 0x00002b4044515535 in arena_get2 (avoid_arena=<optimized out>,
size=<optimized out>, a_tsd=<optimized out>) at arena.c:838
#13 __GI___libc_malloc (bytes=32) at malloc.c:2856
#14 0x00002b4044f1bb9f in pthread_getattr_np (thread_id=47555044140800,
attr=0x2b4045835e20) at pthread_getattr_np.c:167
#15 0x00002b4044abb3f5 in thread_entryPoint () from
/home/braddr/sandbox/d/d-tester/client/pull-869498-Linux_64_64/druntime/lib/libdruntime-linux64.so
#16 0x00002b4044f19f6e in start_thread (arg=0x2b4045836700) at
pthread_create.c:311
#17 0x00002b404458c9cd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:113

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list