JPPF Issue Tracker
star_faded.png
Please log in to bookmark issues
bug_report_small.png
CLOSED  Bug report JPPF-337  -  Deadlock upon closing the administration console
Posted Oct 15, 2014 - updated Aug 15, 2018
icon_info.png This issue has been closed with status "Closed" and resolution "RESOLVED".
Issue details
  • Type of issue
    Bug report
  • Status
     
    Closed
  • Assigned to
     lolo4j
  • Progress
       
  • Type of bug
    Not triaged
  • Likelihood
    Not triaged
  • Effect
    Not triaged
  • Posted by
     lolo4j
  • Owned by
    Not owned by anyone
  • Category
    GUI
  • Resolution
    RESOLVED
  • Priority
    Normal
  • Reproducability
    Always
  • Severity
    Normal
  • Targetted for
    icon_milestones.png JPPF 4.2.x
Issue description
When I try closing the admin console, I get the following deadlock:
Found one Java-level deadlock 
 
"StasHandler-0001":
  waiting to lock monitor 0x000000000ec111e8 (object 0x00000000f9610bd8, a org.jppf.client.JPPFConnectionPool),
  which is held by "AWT-EventQueue-0"
 
"AWT-EventQueue-0":
  waiting to lock monitor 0x00000000077e3918 (object 0x00000000f9896830, a org.jppf.ui.monitoring.data.StatsHandler),
  which is held by "StasHandler-0001"
 
 
 Java stack information for the threads listed above 
 
"StasHandler-0001":
  at org.jppf.client.JPPFConnectionPool.getDriverUuid(JPPFConnectionPool.java:178)
  - waiting to lock <0x00000000f9610bd8> (a org.jppf.client.JPPFConnectionPool)
  at org.jppf.client.BaseJPPFClientConnection.getDriverUuid(BaseJPPFClientConnection.java:391)
  at org.jppf.ui.monitoring.data.StatsHandler.connectionId(StatsHandler.java:560)
  at org.jppf.ui.monitoring.data.StatsHandler.setCurrentConnection(StatsHandler.java:386)
  - locked <0x00000000f9896830> (a org.jppf.ui.monitoring.data.StatsHandler)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
  at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
  at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
  at Script10.run(Script10.groovy:27)
  at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:305)
  at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:50)
  at javax.script.CompiledScript.eval(CompiledScript.java:92)
  at org.jppf.scripting.ScriptRunnerImpl.evaluate(ScriptRunnerImpl.java:108)
  at org.jppf.ui.options.event.ScriptedValueChangeListener.valueChanged(ScriptedValueChangeListener.java:103)
  at org.jppf.ui.options.AbstractOption.fireValueChanged(AbstractOption.java:111)
  at org.jppf.ui.options.ComboBoxOption$1.actionPerformed(ComboBoxOption.java:143)
  at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1260)
  at javax.swing.JComboBox.setSelectedItem(JComboBox.java:588)
  at org.jppf.ui.monitoring.data.ConnectionFailedTask.run(ConnectionFailedTask.java:99)
  - locked <0x00000000f9896830> (a org.jppf.ui.monitoring.data.StatsHandler)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
  at java.util.concurrent.FutureTask.run(FutureTask.java:262)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java.lang.Thread.run(Thread.java:744)
 
 "AWT-EventQueue-0":
  at org.jppf.ui.monitoring.data.StatsHandler.connectionFailed(StatsHandler.java:474)
  - waiting to lock <0x00000000f9896830> (a org.jppf.ui.monitoring.data.StatsHandler)
  at org.jppf.client.AbstractJPPFClient.fireConnectionFailed(AbstractJPPFClient.java:342)
  at org.jppf.client.AbstractGenericClient.connectionFailed(AbstractGenericClient.java:298)
  at org.jppf.client.AbstractJPPFClient.statusChanged(AbstractJPPFClient.java:259)
  at org.jppf.client.AbstractGenericClient.statusChanged(AbstractGenericClient.java:374)
  at org.jppf.client.AbstractJPPFClientConnection.fireStatusChanged(AbstractJPPFClientConnection.java:132)
  at org.jppf.client.AbstractJPPFClientConnection.setStatus(AbstractJPPFClientConnection.java:111)
  at org.jppf.client.AbstractJPPFClientConnection.close(AbstractJPPFClientConnection.java:254)
  at org.jppf.client.AbstractConnectionPool.close(AbstractConnectionPool.java:144)
  - locked <0x00000000f9610bd8> (a org.jppf.client.JPPFConnectionPool)
  at org.jppf.client.JPPFConnectionPool.close(JPPFConnectionPool.java:458)
  - locked <0x00000000f9610bd8> (a org.jppf.client.JPPFConnectionPool)
  at org.jppf.client.AbstractJPPFClient.close(AbstractJPPFClient.java:313)
  at org.jppf.client.AbstractGenericClient.close(AbstractGenericClient.java:338)
  at org.jppf.client.AbstractGenericClient.close(AbstractGenericClient.java:303)
  at org.jppf.ui.monitoring.data.StatsHandler.close(StatsHandler.java:527)
  at org.jppf.ui.options.event.WindowClosingListener.windowClosing(WindowClosingListener.java:43)
  at java.awt.Window.processWindowEvent(Window.java:2051)
  at javax.swing.JFrame.processWindowEvent(JFrame.java:296)
  at java.awt.Window.processEvent(Window.java:2009)
  at java.awt.Component.dispatchEventImpl(Component.java:4861)
  at java.awt.Container.dispatchEventImpl(Container.java:2287)
  at java.awt.Window.dispatchEventImpl(Window.java:2719)
  at java.awt.Component.dispatchEvent(Component.java:4687)
  at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
  at java.awt.EventQueue.access$200(EventQueue.java:103)
  at java.awt.EventQueue$3.run(EventQueue.java:694)
  at java.awt.EventQueue$3.run(EventQueue.java:692)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
  at java.awt.EventQueue$4.run(EventQueue.java:708)
  at java.awt.EventQueue$4.run(EventQueue.java:706)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
  at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
  at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
  at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
  at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Steps to reproduce this issue
  • start one driver, another driver connected to the firsdt as a node, one node for each driver
  • start the admin console
  • when started click on the "X" on the title bar to close the console
==> nothing happens, VisualVM shows a deadlock

#4
Comment posted by
 lolo4j
Oct 16, 08:24
Fixed in branch b4.2 revision 3426