Viewing Issue Advanced Details |
|||||
| ID | 0003758 | Category | [DMDirc] Core | Severity | crash |
| Reproducibility | have not tried | Date Submitted | 2010-02-11 10:21 | Last Update | 2010-02-18 20:19 |
| Reporter | MD87 | Assigned To | MD87 | View Status | public |
| Priority | immediate | Status | closed | Resolution | fixed |
| Platform | Fixed in Version | Target Version | 0.6.3 | ||
| Product Version | Product Build | ||||
| Summary | 0003758: Deadlock in away state change | ||||
|
Description |
Found one Java-level deadlock:
============================= "SwingWorker-pool-1-thread-3032": waiting to lock monitor 0x08ab145c (object 0x73d54698, a java.lang.Object), which is held by "SwingWorker-pool-1-thread-3025" "SwingWorker-pool-1-thread-3025": waiting to lock monitor 0x089a4634 (object 0x73ca93d8, a java.lang.Object), which is held by "IRCParser pingTimer" "IRCParser pingTimer": waiting to lock monitor 0x08b37f08 (object 0x73962798, a java.awt.Component$AWTTreeLock), which is held by "AWT-EventQueue-1" "AWT-EventQueue-1": waiting to lock monitor 0x089a4634 (object 0x73ca93d8, a java.lang.Object), which is held by "IRCParser pingTimer" Java stack information for the threads listed above: =================================================== "SwingWorker-pool-1-thread-3032": at com.dmdirc.actions.ActionManager.triggerActions(ActionManager.java:420) - waiting to lock <0x73d54698> (a java.lang.Object) at com.dmdirc.actions.ActionManager.processEvent(ActionManager.java:391) at com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1.doInBackground(TextFrame.java:468) at javax.swing.SwingWorker$1.call(SwingWorker.java:278) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at javax.swing.SwingWorker.run(SwingWorker.java:317) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) "SwingWorker-pool-1-thread-3025": at com.dmdirc.Server.isValidChannelName(Server.java:1156) - waiting to lock <0x73ca93d8> (a java.lang.Object) at com.dmdirc.commandparser.parsers.CommandParser.parseCommand(CommandParser.java:131) at com.dmdirc.commandparser.parsers.CommandParser.parseCommand(CommandParser.java:210) at com.dmdirc.actions.ActionModel.trigger(ActionModel.java:149) at com.dmdirc.actions.Action.trigger(Action.java:563) at com.dmdirc.actions.ActionManager.triggerActions(ActionManager.java:421) - locked <0x73d54698> (a java.lang.Object) at com.dmdirc.actions.ActionManager.processEvent(ActionManager.java:391) at com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1.doInBackground(TextFrame.java:468) at javax.swing.SwingWorker$1.call(SwingWorker.java:278) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at javax.swing.SwingWorker.run(SwingWorker.java:317) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) "IRCParser pingTimer": at java.awt.Container.clearCurrentFocusCycleRootOnHide(Container.java:3117) - waiting to lock <0x73962798> (a java.awt.Component$AWTTreeLock) at java.awt.Component.hide(Component.java:1590) at java.awt.Component.show(Component.java:1565) at java.awt.Component.setVisible(Component.java:1515) at javax.swing.JComponent.setVisible(JComponent.java:2612) at com.dmdirc.addons.ui_swing.components.frames.InputTextFrame.setAwayIndicator(InputTextFrame.java:263) at com.dmdirc.addons.ui_swing.components.frames.InputTextFrame.onBack(InputTextFrame.java:470) at com.dmdirc.Server.updateAwayState(Server.java:1713) - locked <0x73dae088> (a com.dmdirc.util.ListenerList) at com.dmdirc.Server.onSocketClosed(Server.java:1339) - locked <0x73ca9480> (a java.lang.Object) at com.dmdirc.ServerEventHandler.onSocketClosed(ServerEventHandler.java:173) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.dmdirc.parser.common.CallbackObject.call(CallbackObject.java:151) at com.dmdirc.parser.irc.IRCParser.callSocketClosed(IRCParser.java:583) at com.dmdirc.parser.irc.IRCParser.disconnect(IRCParser.java:1739) at com.dmdirc.Server.disconnect(Server.java:379) - locked <0x73ca93d8> (a java.lang.Object) - locked <0x73ca9480> (a java.lang.Object) at com.dmdirc.Server.reconnect(Server.java:327) - locked <0x73ca9480> (a java.lang.Object) at com.dmdirc.Server.reconnect(Server.java:337) at com.dmdirc.Server.onPingFailed(Server.java:1426) at com.dmdirc.ServerEventHandler.onPingFailed(ServerEventHandler.java:233) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.dmdirc.parser.common.CallbackObject.call(CallbackObject.java:151) at com.dmdirc.parser.irc.IRCParser.callPingFailed(IRCParser.java:593) at com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1921) at com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) "AWT-EventQueue-1": at com.dmdirc.Server.getChannelPrefixes(Server.java:892) - waiting to lock <0x73ca93d8> (a java.lang.Object) at com.dmdirc.ui.messages.Styliser.doLinks(Styliser.java:275) at com.dmdirc.ui.messages.Styliser.addStyledString(Styliser.java:184) at com.dmdirc.ui.messages.Styliser.addStyledString(Styliser.java:157) at com.dmdirc.ui.messages.Styliser.getStyledString(Styliser.java:223) at com.dmdirc.ui.core.util.Utils.getAttributedString(Utils.java:64) at com.dmdirc.addons.ui_swing.textpane.Line.getStyled(Line.java:142) at com.dmdirc.addons.ui_swing.textpane.IRCDocument.getStyledLine(IRCDocument.java:299) - locked <0x748856c8> (a java.util.ArrayList) at com.dmdirc.addons.ui_swing.textpane.IRCDocument.getStyledLine(IRCDocument.java:317) at com.dmdirc.addons.ui_swing.textpane.TextPaneCanvas.paintOntoGraphics(TextPaneCanvas.java:220) at com.dmdirc.addons.ui_swing.textpane.TextPaneCanvas.paintComponent(TextPaneCanvas.java:148) at javax.swing.JComponent.paint(JComponent.java:1029) at javax.swing.JComponent.paintChildren(JComponent.java:864) - locked <0x73962798> (a java.awt.Component$AWTTreeLock) at javax.swing.JComponent.paint(JComponent.java:1038) at javax.swing.JComponent.paintChildren(JComponent.java:864) - locked <0x73962798> (a java.awt.Component$AWTTreeLock) at javax.swing.JComponent.paint(JComponent.java:1038) at javax.swing.JComponent.paintChildren(JComponent.java:864) - locked <0x73962798> (a java.awt.Component$AWTTreeLock) at javax.swing.JComponent.paint(JComponent.java:1038) at javax.swing.JComponent.paintChildren(JComponent.java:864) - locked <0x73962798> (a java.awt.Component$AWTTreeLock) at javax.swing.JComponent.paint(JComponent.java:1038) at javax.swing.JLayeredPane.paint(JLayeredPane.java:567) at javax.swing.JComponent.paintChildren(JComponent.java:864) - locked <0x73962798> (a java.awt.Component$AWTTreeLock) at javax.swing.JComponent.paint(JComponent.java:1038) at javax.swing.JComponent.paintChildren(JComponent.java:864) - locked <0x73962798> (a java.awt.Component$AWTTreeLock) at javax.swing.JComponent.paint(JComponent.java:1038) at javax.swing.JComponent.paintChildren(JComponent.java:864) - locked <0x73962798> (a java.awt.Component$AWTTreeLock) at javax.swing.JComponent.paint(JComponent.java:1038) at javax.swing.JLayeredPane.paint(JLayeredPane.java:567) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124) at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278) at javax.swing.RepaintManager.paint(RepaintManager.java:1220) at javax.swing.JComponent._paintImmediately(JComponent.java:5072) at javax.swing.JComponent.paintImmediately(JComponent.java:4882) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714) at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at com.dmdirc.addons.ui_swing.DMDircEventQueue.dispatchEvent(DMDircEventQueue.java:79) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Found 1 deadlock. |
||||
| Needs unit test | no | ||||
| Upstream Bug URL | |||||
|
[ Relation Graph ]
[ Dependency Graph ]
Relationships |
|
Notes |
|||||||||||||||||||||||||
|
A patchset (1) related to this change has been added to gerrit by Chris Smith Run some listeners in separate threads Fixes issue 3745 Fixes issue 3758 Change-Id: Id611f5bca03f07c87f84c054d73cf1612221c0da |
|||||||||||||||||||||||||
|
A patchset (2) related to this change has been added to gerrit by Chris Smith Run some listeners in separate threads Fixes issue 3745 Fixes issue 3758 Change-Id: Id611f5bca03f07c87f84c054d73cf1612221c0da |
|||||||||||||||||||||||||
|
A patchset (3) related to this change has been added to gerrit by Chris Smith Run some listeners in separate threads Fixes issue 3745 Fixes issue 3758 Change-Id: Id611f5bca03f07c87f84c054d73cf1612221c0da |
|||||||||||||||||||||||||
Run some listeners in separate threads Fixes issue 3745
Fixes issue 3758
Change-Id: Id611f5bca03f07c87f84c054d73cf1612221c0da
Reviewed-on: http://gerrit.dmdirc.com/884
Reviewed-by: Gregory Holmes <greg@dmdirc.com>
Automatic-Compile: Gregory Holmes <greg@dmdirc.com>
2 files changed, 27 insertions, 13 deletions
|
|||||||||||||||||||||||||
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2010-02-11 10:21 | MD87 | New Issue | |
| 2010-02-11 10:21 | MD87 | Status | new => assigned |
| 2010-02-11 10:21 | MD87 | Assigned To | => MD87 |
| 2010-02-11 10:21 | MD87 | Needs unit test | => no |
| 2010-02-16 17:51 | Version Control | Checkin | |
| 2010-02-16 17:51 | Version Control | Note Added: 0009853 | |
| 2010-02-16 17:51 | Version Control | Status | assigned => fix pending |
| 2010-02-17 02:25 | Version Control | Checkin | |
| 2010-02-17 02:25 | Version Control | Note Added: 0009881 | |
| 2010-02-17 02:36 | Version Control | Checkin | |
| 2010-02-17 02:36 | Version Control | Note Added: 0009886 | |
| 2010-02-17 02:38 | MD87 | Checkin | |
| 2010-02-17 02:38 | MD87 | Note Added: 0009889 | |
| 2010-02-17 02:38 | MD87 | Status | fix pending => resolved |
| 2010-02-17 02:38 | MD87 | Resolution | open => fixed |
| 2010-02-18 20:19 | Greboid | Status | resolved => closed |

