[kepler-dev] Deadlock while wrapping up

xiaowen xin2 at llnl.gov
Mon Dec 20 19:59:33 PST 2004


Hi,


While running Ptolemy today, it hung while wrapping up after executing a
workflow.  Remembering a hint from Christopher a few months ago on this
mailing list, I used kill -3 to obtain a stack trace, which is at the
end of this email.  It looks like there was a deadlock between
"Thread-0" and "AWT-EventQueue-0".  Will someone please tell me how I
can solve this or work around it so it doesn't happen again?

I'm using Ptolemy II 4.0.1.


Thanks in advance!
Xiaowen

------

     [java] Full thread dump Java HotSpot(TM) Client VM (1.4.2_01-b06 mixed mode):
 
     [java] "Thread-0" prio=1 tid=0x089628e0 nid=0x4df9 waiting for monitor entry [a865c000..a865c87c]
     [java]     at ptolemy.gui.Top.deferIfNecessary(Top.java:229)
     [java]     - waiting to lock <0xab4a26b0> (a java.util.LinkedList)
     [java]     at ptolemy.gui.Top.report(Top.java:296)
     [java]     at ptolemy.actor.gui.ModelFrame.executionFinished(ModelFrame.java:139)
     [java]     - locked <0xabda5fb8> (a ptolemy.actor.gui.RunTableau$RunFrame)
     [java]     at ptolemy.actor.Manager._notifyListenersOfCompletion(Manager.java:1121)
     [java]     - locked <0xabda6160> (a ptolemy.actor.Manager)
     [java]     at ptolemy.actor.Manager.execute(Manager.java:323)
     [java]     - locked <0xabda6160> (a ptolemy.actor.Manager)
     [java]     at ptolemy.actor.Manager.run(Manager.java:852)
     [java]     at ptolemy.actor.Manager$2.run(Manager.java:901)
 
     [java] "TimerQueue" daemon prio=1 tid=0x08994a58 nid=0x4df9 in Object.wait() [a8beb000..a8beb87c]
     [java]     at java.lang.Object.wait(Native Method)
     [java]     - waiting on <0xabda6238> (a javax.swing.TimerQueue)
     [java]     at javax.swing.TimerQueue.run(TimerQueue.java:231)
     [java]     - locked <0xabda6238> (a javax.swing.TimerQueue)
     [java]     at java.lang.Thread.run(Thread.java:534)
 
     [java] "Java2D Disposer" daemon prio=1 tid=0x08967a18 nid=0x4df9 in Object.wait() [a8b6a000..a8b6a87c]
     [java]     at java.lang.Object.wait(Native Method)
     [java]     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
     [java]     - locked <0xabcb3110> (a java.lang.ref.ReferenceQueue$Lock)
     [java]     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
     [java]     at sun.java2d.Disposer.run(Disposer.java:100)
     [java]     at java.lang.Thread.run(Thread.java:534)
 
     [java] "DestroyJavaVM" prio=1 tid=0x080534d8 nid=0x4df9 waiting on condition [0..bfffc1a4]
 
     [java] "AWT-EventQueue-0" prio=1 tid=0x083d6540 nid=0x4df9 waiting for monitor entry [a8c6c000..a8c6c87c]
     [java]     at java.awt.Frame.getExtendedState(Frame.java:734)
     [java]     - waiting to lock <0xabda5fb8> (a ptolemy.actor.gui.RunTableau$RunFrame)
     [java]     at javax.swing.RepaintManager.addDirtyRegion(RepaintManager.java:265)
     [java]     - locked <0xabc9c1b0> (a javax.swing.RepaintManager)
     [java]     at javax.swing.JComponent.repaint(JComponent.java:4341)
     [java]     at java.awt.Component.repaint(Component.java:2451)
     [java]     at javax.swing.text.PlainView.damageLineRange(PlainView.java:568)
     [java]     at javax.swing.text.PlainView.updateDamage(PlainView.java:529)
     [java]     at javax.swing.text.PlainView.removeUpdate(PlainView.java:434)
     [java]     at javax.swing.text.FieldView.removeUpdate(FieldView.java:288)
     [java]     at javax.swing.plaf.basic.BasicTextUI$RootView.removeUpdate(BasicTextUI.java:1501)
     [java]     at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.removeUpdate(BasicTextUI.java:1741)
     [java]     at javax.swing.text.AbstractDocument.fireRemoveUpdate(AbstractDocument.java:242)
     [java]     at javax.swing.text.AbstractDocument.handleRemove(AbstractDocument.java:607)
     [java]     at javax.swing.text.AbstractDocument.remove(AbstractDocument.java:575)
     [java]     at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:665)
     [java]     at javax.swing.text.JTextComponent.setText(JTextComponent.java:1403)
     [java]     at ptolemy.gui.StatusBar.setMessage(StatusBar.java:101)
     [java]     at ptolemy.gui.Top$5.run(Top.java:292)
     [java]     at ptolemy.gui.Top._executeDeferredActions(Top.java:926)
     [java]     - locked <0xab4a26b0> (a java.util.LinkedList)
     [java]     at ptolemy.gui.Top.access$000(Top.java:124)
     [java]     at ptolemy.gui.Top$4.run(Top.java:236)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
     [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
 
     [java] "AWT-Motif" daemon prio=1 tid=0x083d57a8 nid=0x4df9 runnable [a8ced000..a8ced87c]
     [java]     at sun.awt.motif.MToolkit.run(Native Method)
     [java]     at java.lang.Thread.run(Thread.java:534)
 
     [java] "AWT-Shutdown" prio=1 tid=0x083d52c0 nid=0x4df9 in Object.wait() [a8d6e000..a8d6e87c]
     [java]     at java.lang.Object.wait(Native Method)
     [java]     - waiting on <0xab3f2bd8> (a java.lang.Object)
     [java]     at java.lang.Object.wait(Object.java:429)
     [java]     at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
     [java]     - locked <0xab3f2bd8> (a java.lang.Object)
     [java]     at java.lang.Thread.run(Thread.java:534)
 
     [java] "Signal Dispatcher" daemon prio=1 tid=0x0809ea50 nid=0x4df9 waiting on condition [0..0]
 
     [java] "Finalizer" daemon prio=1 tid=0x08089a30 nid=0x4df9 in Object.wait() [aad4d000..aad4d87c]
     [java]     at java.lang.Object.wait(Native Method)
     [java]     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
     [java]     - locked <0xab3cc7b8> (a java.lang.ref.ReferenceQueue$Lock)
     [java]     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
     [java]     at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
 
     [java] "Reference Handler" daemon prio=1 tid=0x08088dc0 nid=0x4df9 in Object.wait() [aadce000..aadce87c]
     [java]     at java.lang.Object.wait(Native Method)
     [java]     at java.lang.Object.wait(Object.java:429)
     [java]     at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
     [java]     - locked <0xab3cc820> (a java.lang.ref.Reference$Lock)
 
     [java] "VM Thread" prio=1 tid=0x08087990 nid=0x4df9 runnable
 
     [java] "VM Periodic Task Thread" prio=1 tid=0x080a15f8 nid=0x4df9 waiting on condition
     [java] "Suspend Checker Thread" prio=1 tid=0x0809e028 nid=0x4df9 runnable
 
     [java] Found one Java-level deadlock:
     [java] =============================
     [java] "Thread-0":
     [java]   waiting to lock monitor 0x0843100c (object 0xab4a26b0, a java.util.LinkedList),
     [java]   which is held by "AWT-EventQueue-0"
     [java] "AWT-EventQueue-0":
     [java]   waiting to lock monitor 0x08431044 (object 0xabda5fb8, a ptolemy.actor.gui.RunTableau$RunFrame),
     [java]   which is held by "Thread-0"
 
     [java] Java stack information for the threads listed above:
     [java] ===================================================
     [java] "Thread-0":
     [java]     at ptolemy.gui.Top.deferIfNecessary(Top.java:229)
     [java]     - waiting to lock <0xab4a26b0> (a java.util.LinkedList)
     [java]     at ptolemy.gui.Top.report(Top.java:296)
     [java]     at ptolemy.actor.gui.ModelFrame.executionFinished(ModelFrame.java:139)
     [java]     - locked <0xabda5fb8> (a ptolemy.actor.gui.RunTableau$RunFrame)
     [java]     at ptolemy.actor.Manager._notifyListenersOfCompletion(Manager.java:1121)
     [java]     - locked <0xabda6160> (a ptolemy.actor.Manager)
     [java]     at ptolemy.actor.Manager.execute(Manager.java:323)
     [java]     - locked <0xabda6160> (a ptolemy.actor.Manager)
     [java]     at ptolemy.actor.Manager.run(Manager.java:852)
     [java]     at ptolemy.actor.Manager$2.run(Manager.java:901)
     [java] "AWT-EventQueue-0":
     [java]     at java.awt.Frame.getExtendedState(Frame.java:734)
     [java]     - waiting to lock <0xabda5fb8> (a ptolemy.actor.gui.RunTableau$RunFrame)
     [java]     at javax.swing.RepaintManager.addDirtyRegion(RepaintManager.java:265)
     [java]     - locked <0xabc9c1b0> (a javax.swing.RepaintManager)
     [java]     at javax.swing.JComponent.repaint(JComponent.java:4341)
     [java]     at java.awt.Component.repaint(Component.java:2451)
     [java]     at javax.swing.text.PlainView.damageLineRange(PlainView.java:568)
     [java]     at javax.swing.text.PlainView.updateDamage(PlainView.java:529)
     [java]     at javax.swing.text.PlainView.removeUpdate(PlainView.java:434)
     [java]     at javax.swing.text.FieldView.removeUpdate(FieldView.java:288)
     [java]     at javax.swing.plaf.basic.BasicTextUI$RootView.removeUpdate(BasicTextUI.java:1501)
     [java]     at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.removeUpdate(BasicTextUI.java:1741)
     [java]     at javax.swing.text.AbstractDocument.fireRemoveUpdate(AbstractDocument.java:242)
     [java]     at javax.swing.text.AbstractDocument.handleRemove(AbstractDocument.java:607)
     [java]     at javax.swing.text.AbstractDocument.remove(AbstractDocument.java:575)
     [java]     at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:665)
     [java]     at javax.swing.text.JTextComponent.setText(JTextComponent.java:1403)
     [java]     at ptolemy.gui.StatusBar.setMessage(StatusBar.java:101)
     [java]     at ptolemy.gui.Top$5.run(Top.java:292)
     [java]     at ptolemy.gui.Top._executeDeferredActions(Top.java:926)
     [java]     - locked <0xab4a26b0> (a java.util.LinkedList)
     [java]     at ptolemy.gui.Top.access$000(Top.java:124)
     [java]     at ptolemy.gui.Top$4.run(Top.java:236)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
     [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
 
     [java] Found 1 deadlock.





More information about the Kepler-dev mailing list