[Bug 114] Multithreaded applications crash upon garbage collection

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Apr 24 07:59:52 PDT 2006


http://d.puremagic.com/bugzilla/show_bug.cgi?id=114


juanjo at comellas.com.ar changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |juanjo at comellas.com.ar




------- Comment #1 from juanjo at comellas.com.ar  2006-04-24 09:59 -------
BTW, when the application crashes, the line reported by gdb is:

#0  0x0806a978 in _D3gcx3Gcx4markFPvPvZv () at gcx.d:1318
1318                byte *p = cast(byte *)(*p1);

The pointer that's being dereferenced by the GC is invalid. Here's a backtrace
of a test program that has two threads. The crash is happening on
thread 1.

  (gdb) thread apply all bt

Thread 2 (process 8953):
#0  0x5557db9d in sem_post at GLIBC_2.0 () from /lib/tls/libpthread.so.0
#1  0x08062f27 in _D3std6thread6Thread12pauseHandlerUiZv () at std/thread.d:940
#2  <signal handler called>
#3  0x5557e83e in send () from /lib/tls/libpthread.so.0
#4  0x08050a61 in
_D5mango2io6Socket6Socket4sendFAvE5mango2io6Socket6Socket5FlagsZi () at
/home/jcomellas/devel/d/mango_test/mango/io/Socket.d:1423
#5  0x08050290 in _D5mango2io6Socket6Socket6writerFAvZk () at
/home/jcomellas/devel/d/mango_test/mango/io/Socket.d:879
#6  0x0804cbde in _D5mango2io7Conduit7Conduit5writeFAvZk () at
/home/jcomellas/devel/d/mango_test/mango/io/Conduit.d:198
#7  0x0805821f in _D8selector16clientThreadFuncFZv () at selector.d:363
#8  0x0805816e in _D8selector21dummyClientThreadFuncFPvZi () at selector.d:327
#9  0x080628c5 in _D3std6thread6Thread3runFZi () at std/thread.d:609
#10 0x08062d50 in _D3std6thread6Thread11threadstartUPvZPv () at
std/thread.d:845
#11 0x55579ced in start_thread () from /lib/tls/libpthread.so.0
#12 0x5567ddde in clone () from /lib/tls/libc.so.6

Thread 1 (process 8949):
#0  0x0806a978 in _D3gcx3Gcx4markFPvPvZv () at gcx.d:1318
#1  0x0806ad05 in _D3gcx3Gcx11fullcollectFPvZk () at gcx.d:1462
#2  0x0806aab5 in _D3gcx3Gcx16fullcollectshellFZk () at gcx.d:1382
#3  0x080692de in _D3gcx2GC12mallocNoSyncFkZPv () at gcx.d:275
#4  0x080691c1 in _D3gcx2GC6mallocFkZPv () at gcx.d:228
#5  0x080684db in _d_newclass () at gc.d:127
#6  0x08053df7 in
_D5mango2io8selector12PollSelector12PollSelector11selectedSetFZC5mango2io8selector5model9ISelector13ISelectionSet
()
    at /home/jcomellas/devel/d/mango_test/mango/io/selector/PollSelector.d:353
#7  0x08057d69 in
_D8selector12testSelectorFC5mango2io8selector5model9ISelector9ISelectorZv () at
selector.d:142
#8  0x08057c24 in _Dmain () at selector.d:66
#9  0x0805a38a in main () at internal/dmain2.d:94


-- 




More information about the Digitalmars-d-bugs mailing list