Livelock and crash with Mohans latest build

Øyvind Harboe oyvind.harboe@zylin.com
Thu Mar 27 08:01:00 GMT 2003


I took Mohans latest build for a spin to see if the
work done on the garbage collector cured my problems. 
Thought I'd post the results, in case someone finds them useful.
Recap:
Livelock http://gcc.gnu.org/ml/java/2003-02/msg00511.html
Crash http://gcc.gnu.org/ml/java/2003-02/msg00516.html 
Two sessions which I believe show the livelock problem
from two different angles are included below:
- a segmentation fault finalize method
- stack dump in livelock
Speculation: will the garbage collector livelock if a segmentation
fault happens during a finalize in a JNI call?
C:\eclipse\workspace\output\edgemaster>\mingw\bin\gdb edgemaster
GNU gdb 5.1.1 (mingw experimental)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "mingw32"...
(gdb) run
Starting program: C:\eclipse\workspace\output\edgemaster/edgemaster.exe
Program received signal SIGSEGV, Segmentation fault.
[Switching to thread 1860.0x7b8]
0x005cf17f in javax.comm.SerialPortImpl.finalize() ()
 at javax/comm/SerialPortImpl.java:598
598 javax/comm/SerialPortImpl.java: No such file or directory.
 in javax/comm/SerialPortImpl.java
(gdb) thread apply all bt
Thread 8 (thread 1860.0x704):
#0 0x77f88e63 in ?? ()
#1 0x77ea9c13 in _libwsock32_a_iname ()
#2 0x0078894b in java::lang::Thread::sleep(long long, int) ()
#3 0x00764468 in java::lang::Thread::sleep(long long) ()
#4 0x005ccae1 in javax.comm.SerialPortEventTask.run() ()
 at javax/comm/SerialPortEventTask.java:216
#5 0x00788c57 in _Jv_ThreadRun(java::lang::Thread*) ()
#6 0x0079bc87 in _Z12really_startPv@4 ()
#7 0x007f65d8 in thread_start@4 ()
#8 0x77e8b2d8 in _libwsock32_a_iname ()
Thread 7 (thread 1860.0x7f4):
#0 0x77f88e63 in ?? ()
#1 0x77ea9c13 in _libwsock32_a_iname ()
#2 0x00788158 in java::lang::Object::wait(long long, int) ()
#3 0x007507ce in java::lang::Object::wait(long long) ()
#4 0x007403b7 in com.cyviz.xpo.Connection.waitForMore(int) (this=0x1ae0060,
 timeout=4100) at com/cyviz/xpo/Connection.java:289
#5 0x007413dc in com.cyviz.xpo.Connection.waitForPrompt(int) (this=0x1ae0060,
 extraProcessingTime=4000) at com/cyviz/xpo/Connection.java:498
#6 0x007412a6 in com.cyviz.xpo.Connection.sendCommand(java.lang.String) (
---Type <return> to continue, or q <return> to quit---
 this=0x1ae0060, command=0x1b0dd20) at com/cyviz/xpo/Connection.java:471
#7 0x00741077 in com.cyviz.xpo.Connection.internalSendCommand(java.lang.String,
 java.lang.String) (this=0x1ae0060, command=0x1b0dd20, serialNumber=0x2347770)
 at com/cyviz/xpo/Connection.java:446
#8 0x0073e612 in com.cyviz.xpo.Box.sendCommand(java.lang.String) (
 this=0x1b02528, cmd=0x1b0dd20) at com/cyviz/xpo/Box.java:642
#9 0x0073dba2 in com.cyviz.xpo.Box.readLocationSignal() (this=0x1b02528)
 at com/cyviz/xpo/Box.java:459
#10 0x0073df11 in com.cyviz.xpo.Box.checkSignal() (this=0x1b02528)
 at com/cyviz/xpo/Box.java:520
#11 0x0073d24e in com.cyviz.xpo.Box.uploadDeltaData(com.cyviz.xpo.GainTable, int
) (this=0x1b02528, table=0x27caaa0, leftRight=0) at com/cyviz/xpo/Box.java:402
#12 0x00675e0f in com.cyviz.blender.gamma.GammaBoxRefresh.updateAndUpload(com.cy
viz.xpo.Connection) (this=0x2837e70, connection=0x1ae0060)
 at com/cyviz/blender/gamma/GammaBoxRefresh.java:266
#13 0x00676664 in com.cyviz.blender.gamma.GammaSession.updateBoxBlends() (
 this=0x1ae0180) at com/cyviz/blender/gamma/GammaSession.java:111
#14 0x00676261 in com.cyviz.blender.gamma.GammaSession.updateBlend() (
 this=0x1ae0180) at com/cyviz/blender/gamma/GammaSession.java:42
#15 0x0067ac8f in com.cyviz.blender.Session.uploadBlendingData() (
 this=0x1ae0180) at com/cyviz/blender/Session.java:298
#16 0x0067ae8f in com.cyviz.blender.Session.MainLoopCore() (this=0x1ae0180)
 at com/cyviz/blender/Session.java:339
---Type <return> to continue, or q <return> to quit---
#17 0x0067b9b6 in com.cyviz.blender.Session.MainLoop() (this=0x1ae0180)
 at com/cyviz/blender/Session.java:455
#18 0x00679f2f in com.cyviz.blender.Session7ドル.run() (this=0x1aecad0)
 at Session.java:649
#19 0x007641e9 in java::lang::Thread::run() ()
#20 0x00788c57 in _Jv_ThreadRun(java::lang::Thread*) ()
#21 0x0079bc87 in _Z12really_startPv@4 ()
#22 0x007f65d8 in thread_start@4 ()
#23 0x77e8b2d8 in _libwsock32_a_iname ()
Thread 2 (thread 1860.0x7b8):
#0 0x005cf17f in javax.comm.SerialPortImpl.finalize() ()
 at javax/comm/SerialPortImpl.java:598
#1 0x007871be in _Jv_FinalizeObject(java::lang::Object*) ()
#2 0x0079b4f0 in call_finalizer(void*, void*) ()
#3 0x007eb468 in GC_invoke_finalizers ()
#4 0x007985fd in gnu::gcj::runtime::FinalizerThread::run() ()
#5 0x00788c57 in _Jv_ThreadRun(java::lang::Thread*) ()
#6 0x0079bc87 in _Z12really_startPv@4 ()
#7 0x007f65d8 in thread_start@4 ()
#8 0x77e8b2d8 in _libwsock32_a_iname ()
Thread 1 (thread 1860.0x7dc):
---Type <return> to continue, or q <return> to quit---
#0 0x77e585eb in _libwsock32_a_iname ()
#1 0x10008184 in _libwsock32_a_iname ()
#2 0x004df23b in org.eclipse.swt.widgets.Display.sleep() (this=0x1441e10)
 at org/eclipse/swt/widgets/Display.java:1788
#3 0x00694d50 in com.cyviz.gui.XPOSWT.runGUI() (this=0x1441ed8)
 at com/cyviz/gui/XPOSWT.java:923
#4 0x0068eb0e in com.cyviz.gui.EdgeMaster.main(java.lang.String[]) (
 args=0x1207fe0) at com/cyviz/gui/EdgeMaster.java:38
#5 0x007f28dc in gnu::gcj::runtime::FirstThread::call_main() ()
#6 0x007988f2 in gnu::gcj::runtime::FirstThread::run() ()
#7 0x00788c57 in _Jv_ThreadRun(java::lang::Thread*) ()
#8 0x00750263 in _Jv_RunMain(java::lang::Class*, char const*, int, char const**
, bool) ()
#9 0x0075037c in JvRunMain ()
#10 0x004012a2 in main (argc=1, argv=0xd724e8) at c:/temp/ccG6baaa.i:13
0x005cf17f 598 in javax/comm/SerialPortImpl.java
(gdb)
(gdb)
C:\eclipse\workspace\output\edgemaster>\mingw\bin\gdb
GNU gdb 5.1.1 (mingw experimental)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "mingw32".
(gdb) attach 1976
Attaching to process 1976
[Switching to thread 1976.0x7fc]
(gdb) symbol-file edgemaster.exe
Reading symbols from edgemaster.exe...done.
(gdb) thread apply all bt
Thread 5 (thread 1976.0x7fc):
#0 0x77f9180d in _libwsock32_a_iname ()
#1 0x77e8fdd5 in _libwsock32_a_iname ()
#2 0x77e8b2d8 in _libwsock32_a_iname ()
Thread 4 (thread 1976.0x700):
#0 0x77f88e63 in _libwsock32_a_iname ()
#1 0x77ea9d00 in _libwsock32_a_iname ()
#2 0x77ea9c13 in _libwsock32_a_iname ()
#3 0x0078894b in java::lang::Thread::sleep(long long, int) ()
#4 0x00764468 in java::lang::Thread::sleep(long long) ()
#5 0x005ccae1 in javax.comm.SerialPortEventTask.run() ()
 at javax/comm/SerialPortEventTask.java:216
#6 0x00788c57 in _Jv_ThreadRun(java::lang::Thread*) ()
#7 0x0079bc87 in _Z12really_startPv@4 ()
#8 0x007f65d8 in thread_start@4 ()
#9 0x77e8b2d8 in _libwsock32_a_iname ()
Thread 3 (thread 1976.0x690):
#0 0x77f88e73 in _libwsock32_a_iname ()
#1 0x77f8f1e5 in _libwsock32_a_iname ()
#2 0x77f87e86 in _libwsock32_a_iname ()
---Type <return> to continue, or q <return> to quit---
#3 0x007984ee in gnu::gcj::runtime::FinalizerThread::finalizerReady() ()
#4 0x007eb4b6 in GC_notify_or_invoke_finalizers ()
#5 0x0079e5f1 in GC_generic_malloc ()
#6 0x0079e73a in GC_malloc_atomic ()
#7 0x0074f3ae in _Jv_AllocPtrFreeObject ()
#8 0x0077e605 in _Jv_AllocString ()
#9 0x0077e62c in _Jv_NewString ()
#10 0x00746ae6 in com.zylin.util.StringManipulation.replaceAll(java.lang.String,
 java.lang.String, java.lang.String) (in=0x23eb360, a=0x23eb350, b=0x1a32ae0)
 at com/zylin/util/StringManipulation.java:28
#11 0x00740879 in com.cyviz.xpo.Connection.readBufferString() (this=0x1aeaf60)
 at com/cyviz/xpo/Connection.java:331
#12 0x00740941 in com.cyviz.xpo.Connection.accumulateReply() (this=0x1aeaf60)
 at com/cyviz/xpo/Connection.java:338
#13 0x00740ba4 in com.cyviz.xpo.Connection.waitForEcho() (this=0x1aeaf60)
 at com/cyviz/xpo/Connection.java:383
#14 0x00740eb4 in com.cyviz.xpo.Connection.immediateSend(java.lang.String, boole
an) (this=0x1aeaf60, cmd=0x23eb5e0, waitEcho=true)
 at com/cyviz/xpo/Connection.java:426
#15 0x00741274 in com.cyviz.xpo.Connection.sendCommand(java.lang.String) (
 this=0x1aeaf60, command=0x23eb5e0) at com/cyviz/xpo/Connection.java:467
#16 0x00741077 in com.cyviz.xpo.Connection.internalSendCommand(java.lang.String,
 java.lang.String) (this=0x1aeaf60, command=0x23eb5e0, serialNumber=0x2449190)
---Type <return> to continue, or q <return> to quit---
 at com/cyviz/xpo/Connection.java:446
#17 0x0073e612 in com.cyviz.xpo.Box.sendCommand(java.lang.String) (
 this=0x12377a8, cmd=0x23eb5e0) at com/cyviz/xpo/Box.java:642
#18 0x0073d4e3 in com.cyviz.xpo.Box.uploadDeltaData(com.cyviz.xpo.GainTable, int
) (this=0x12377a8, table=0x2401be0, leftRight=1) at com/cyviz/xpo/Box.java:409
#19 0x00675e0f in com.cyviz.blender.gamma.GammaBoxRefresh.updateAndUpload(com.cy
viz.xpo.Connection) (this=0x2190af8, connection=0x1aeaf60)
 at com/cyviz/blender/gamma/GammaBoxRefresh.java:266
#20 0x00676664 in com.cyviz.blender.gamma.GammaSession.updateBoxBlends() (
 this=0x1a3f060) at com/cyviz/blender/gamma/GammaSession.java:111
#21 0x00676261 in com.cyviz.blender.gamma.GammaSession.updateBlend() (
 this=0x1a3f060) at com/cyviz/blender/gamma/GammaSession.java:42
#22 0x0067ac8f in com.cyviz.blender.Session.uploadBlendingData() (
 this=0x1a3f060) at com/cyviz/blender/Session.java:298
#23 0x0067ae8f in com.cyviz.blender.Session.MainLoopCore() (this=0x1a3f060)
 at com/cyviz/blender/Session.java:339
#24 0x0067b9b6 in com.cyviz.blender.Session.MainLoop() (this=0x1a3f060)
 at com/cyviz/blender/Session.java:455
#25 0x00679f2f in com.cyviz.blender.Session7ドル.run() (this=0x1a3d0e8)
 at Session.java:649
#26 0x007641e9 in java::lang::Thread::run() ()
#27 0x00788c57 in _Jv_ThreadRun(java::lang::Thread*) ()
#28 0x0079bc87 in _Z12really_startPv@4 ()
---Type <return> to continue, or q <return> to quit---
#29 0x007f65d8 in thread_start@4 ()
#30 0x77e8b2d8 in _libwsock32_a_iname ()
Thread 2 (thread 1976.0x704):
#0 0x77fac5ee in _libwsock32_a_iname ()
#1 0x0143fa5c in ?? ()
#2 0x77f91a96 in _libwsock32_a_iname ()
#3 0x007871be in _Jv_FinalizeObject(java::lang::Object*) ()
#4 0x0079b4f0 in call_finalizer(void*, void*) ()
#5 0x007eb468 in GC_invoke_finalizers ()
#6 0x007985fd in gnu::gcj::runtime::FinalizerThread::run() ()
#7 0x00788c57 in _Jv_ThreadRun(java::lang::Thread*) ()
#8 0x0079bc87 in _Z12really_startPv@4 ()
#9 0x007f65d8 in thread_start@4 ()
#10 0x77e8b2d8 in _libwsock32_a_iname ()
Thread 1 (thread 1976.0x744):
#0 0x77e585eb in _libwsock32_a_iname ()
#1 0x10008184 in _libwsock32_a_iname ()
#2 0x004df23b in org.eclipse.swt.widgets.Display.sleep() (this=0x1440e10)
 at org/eclipse/swt/widgets/Display.java:1788
#3 0x00694d50 in com.cyviz.gui.XPOSWT.runGUI() (this=0x1440ed8)
 at com/cyviz/gui/XPOSWT.java:923
---Type <return> to continue, or q <return> to quit---
#4 0x0068eb0e in com.cyviz.gui.EdgeMaster.main(java.lang.String[]) (
 args=0x1207fe0) at com/cyviz/gui/EdgeMaster.java:38
#5 0x007f28dc in gnu::gcj::runtime::FirstThread::call_main() ()
#6 0x007988f2 in gnu::gcj::runtime::FirstThread::run() ()
#7 0x00788c57 in _Jv_ThreadRun(java::lang::Thread*) ()
#8 0x00750263 in _Jv_RunMain(java::lang::Class*, char const*, int, char const**
, bool) ()
#9 0x0075037c in JvRunMain ()
#10 0x004012a2 in main (argc=1, argv=0xd73828) at c:/temp/ccG6baaa.i:13
#0 0x77f9180d in _libwsock32_a_iname ()
(gdb)


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /