JPPF Issue Tracker
star_faded.png
Please log in to bookmark issues
bug_report_small.png
CLOSED  Bug report JPPF-398  -  Deadock in the client
Posted Jun 10, 2015 - updated Oct 25, 2015
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
    Client
  • Resolution
    RESOLVED
  • Priority
    Normal
  • Reproducability
    Rarely
  • Severity
    Normal
  • Targetted for
    icon_milestones.png JPPF 4.2.9
Issue description
The following deadlock was reported in the client:
Found one Java-level deadlock:
=============================
 
"JPPF Client-0003":
  waiting to lock monitor 0x000000001d91bad8 (object 0x00000006c7051c28, a org.jppf.client.balancer.SubmissionManagerClient), which is held by "InitPools"
 
"InitPools":
  waiting to lock monitor 0x0000000026e57688 (object 0x00000006c70a3748, a org.jppf.utils.collections.SetSortedMap),
  which is held by "TaskQueueChecker"
 
"TaskQueueChecker":
  waiting to lock monitor 0x000000001d91bad8 (object 0x00000006c7051c28, a org.jppf.client.balancer.SubmissionManagerClient), which is held by "InitPools"
 
 
Java stack information for the threads listed above:
===================================================
 
"JPPF Client-0003":
  at org.jppf.utils.ThreadSynchronization.wakeUp(ThreadSynchronization.java:70)
  - waiting to lock <0x00000006c7051c28> (a org.jppf.client.balancer.SubmissionManagerClient)
  at org.jppf.client.AbstractGenericClient.statusChanged(AbstractGenericClient.java:379)
  at org.jppf.client.AbstractJPPFClientConnection.fireStatusChanged(AbstractJPPFClientConnection.java:132)
  at org.jppf.client.AbstractJPPFClientConnection.setStatus(AbstractJPPFClientConnection.java:111)
  at org.jppf.client.AbstractJPPFClientConnection.processStatusChanged(AbstractJPPFClientConnection.java:194)
  at org.jppf.client.AbstractJPPFClientConnection.taskServerConnectionStatusChanged(AbstractJPPFClientConnection.java:180)
  at org.jppf.client.JPPFClientConnectionImpl$2.statusChanged(JPPFClientConnectionImpl.java:98)
  at org.jppf.client.AbstractClientConnectionHandler.fireStatusChanged(AbstractClientConnectionHandler.java:162)
  at org.jppf.client.AbstractClientConnectionHandler.setStatus(AbstractClientConnectionHandler.java:123)
  at org.jppf.client.TaskServerConnectionHandler.init(TaskServerConnectionHandler.java:82)
  at org.jppf.client.JPPFClientConnectionImpl.connect(JPPFClientConnectionImpl.java:127)
  at org.jppf.client.JPPFClientConnectionImpl.init(JPPFClientConnectionImpl.java:101)
  at org.jppf.client.ConnectionInitializer.run(ConnectionInitializer.java:54)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
 
"InitPools":
  at org.jppf.client.balancer.queue.TaskQueueChecker.removeIdleChannel(TaskQueueChecker.java:167)
  - waiting to lock <0x00000006c70a3748> (a org.jppf.utils.collections.SetSortedMap)
  at org.jppf.client.balancer.SubmissionManagerClient.updateConnectionStatus(SubmissionManagerClient.java:269)
  at org.jppf.client.balancer.SubmissionManagerClient.addConnection(SubmissionManagerClient.java:151)
  - locked <0x00000006c7051c28> (a org.jppf.client.balancer.SubmissionManagerClient)
  at org.jppf.client.balancer.SubmissionManagerClient.addConnection(SubmissionManagerClient.java:192)
  - locked <0x00000006c7051c28> (a org.jppf.client.balancer.SubmissionManagerClient)
  at org.jppf.client.balancer.SubmissionManagerClient$3.newConnection(SubmissionManagerClient.java:129)
  at org.jppf.client.AbstractJPPFClient.fireNewConnection(AbstractJPPFClient.java:352)
  at org.jppf.client.AbstractGenericClient.newConnection(AbstractGenericClient.java:283)
  at org.jppf.client.AbstractGenericClient.submitNewConnection(AbstractGenericClient.java:257)
  at org.jppf.client.AbstractGenericClient.newConnection(AbstractGenericClient.java:245)
  at org.jppf.client.AbstractGenericClient.initRemotePools(AbstractGenericClient.java:214)
  at org.jppf.client.AbstractGenericClient.initPools(AbstractGenericClient.java:161)
  at org.jppf.client.AbstractGenericClient$1.run(AbstractGenericClient.java:122)
  at java.lang.Thread.run(Thread.java:745)
 
"TaskQueueChecker":
  at org.jppf.utils.ThreadSynchronization.wakeUp(ThreadSynchronization.java:70)
  - waiting to lock <0x00000006c7051c28> (a org.jppf.client.balancer.SubmissionManagerClient)
  at org.jppf.client.AbstractGenericClient.statusChanged(AbstractGenericClient.java:379)
  at org.jppf.client.AbstractJPPFClientConnection.fireStatusChanged(AbstractJPPFClientConnection.java:132)
  at org.jppf.client.AbstractJPPFClientConnection.setStatus(AbstractJPPFClientConnection.java:111)
  at org.jppf.client.AbstractJPPFClientConnection.processStatusChanged(AbstractJPPFClientConnection.java:194)
  at org.jppf.client.AbstractJPPFClientConnection.taskServerConnectionStatusChanged(AbstractJPPFClientConnection.java:180)
  at org.jppf.client.JPPFClientConnectionImpl$2.statusChanged(JPPFClientConnectionImpl.java:98)
  at org.jppf.client.AbstractClientConnectionHandler.fireStatusChanged(AbstractClientConnectionHandler.java:162)
  at org.jppf.client.AbstractClientConnectionHandler.setStatus(AbstractClientConnectionHandler.java:123)
  at org.jppf.client.balancer.ChannelWrapperRemote.setStatus(ChannelWrapperRemote.java:99)
  at org.jppf.client.balancer.ChannelWrapperRemote.submit(ChannelWrapperRemote.java:123)
  at org.jppf.client.balancer.ChannelWrapperRemote.submit(ChannelWrapperRemote.java:39)
  at org.jppf.client.balancer.queue.TaskQueueChecker.dispatchJobToChannel(TaskQueueChecker.java:297)
  - locked <0x00000006c70b2528> (a org.jppf.client.balancer.ChannelWrapperRemote)
  at org.jppf.client.balancer.queue.TaskQueueChecker.dispatch(TaskQueueChecker.java:217)
  - locked <0x00000006c70a3748> (a org.jppf.utils.collections.SetSortedMap)
  at org.jppf.client.balancer.queue.TaskQueueChecker.run(TaskQueueChecker.java:189)
  at java.lang.Thread.run(Thread.java:745)
We propose to implement a fix similar to what we did for bug JPPF-382 (same issue on the server side)
Steps to reproduce this issue
N/A

#6
Comment posted by
 lolo4j
Jun 10, 06:36
Fixed in: