4 Replies Latest reply: Mar 6, 2012 7:07 AM by Yong Hao Gao RSS

Latest deadlock in trunk tests

Yong Hao Gao Master

Running tests on my local machine, found a deadlock reported in thread dump:

 

Found one Java-level deadlock:

=============================

"Thread-4 (HornetQ-client-global-scheduled-threads-1332022244)":

  waiting to lock monitor 0x000000004143e690 (object 0x00000007d7edd1b0, a java.lang.Object),

  which is held by "Old I/O client worker ([id: 0x4a8a0eef, /127.0.0.1:56193 => localhost/127.0.0.1:5445])"

"Old I/O client worker ([id: 0x4a8a0eef, /127.0.0.1:56193 => localhost/127.0.0.1:5445])":

  waiting to lock monitor 0x0000000040b780b0 (object 0x00000007d7d642c0, a org.hornetq.core.journal.impl.JournalImpl),

  which is held by "main"

"main":

  waiting for ownable synchronizer 0x00000007d7d65078, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),

  which is held by "Old I/O client worker ([id: 0x4a8a0eef, /127.0.0.1:56193 => localhost/127.0.0.1:5445])"

 

Java stack information for the threads listed above:

===================================================

"Thread-4 (HornetQ-client-global-scheduled-threads-1332022244)":

    at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.flush(RemotingConnectionImpl.java:463)

    - waiting to lock <0x00000007d7edd1b0> (a java.lang.Object)

    at org.hornetq.core.client.impl.ClientSessionFactoryImpl$PingRunnable.send(ClientSessionFactoryImpl.java:1680)

    at org.hornetq.core.client.impl.ClientSessionFactoryImpl$PingRunnable.run(ClientSessionFactoryImpl.java:1664)

    - locked <0x00000007d7edd308> (a org.hornetq.core.client.impl.ClientSessionFactoryImpl$PingRunnable)

    at org.hornetq.core.client.impl.ClientSessionFactoryImpl$ActualScheduledPinger.run(ClientSessionFactoryImpl.java:1613)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)

    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)

    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)

    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)

    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)

    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:662)

"Old I/O client worker ([id: 0x4a8a0eef, /127.0.0.1:56193 => localhost/127.0.0.1:5445])":

    at org.hornetq.core.journal.impl.JournalImpl.loadInternalOnly(JournalImpl.java:1298)

    - waiting to lock <0x00000007d7d642c0> (a org.hornetq.core.journal.impl.JournalImpl)

    at org.hornetq.core.replication.ReplicationEndpoint.finishSynchronization(ReplicationEndpoint.java:433)

    at org.hornetq.core.replication.ReplicationEndpoint.handleStartReplicationSynchronization(ReplicationEndpoint.java:527)

    at org.hornetq.core.replication.ReplicationEndpoint.handlePacket(ReplicationEndpoint.java:210)

    at org.hornetq.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:549)

    at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:566)

    - locked <0x00000007d7edd1b0> (a java.lang.Object)

    at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:527)

    at org.hornetq.core.client.impl.ClientSessionFactoryImpl$DelegatingBufferHandler.bufferReceived(ClientSessionFactoryImpl.java:1578)

    at org.hornetq.core.remoting.impl.netty.HornetQChannelHandler.messageReceived(HornetQChannelHandler.java:73)

    at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:100)

    at org.jboss.netty.channel.StaticChannelPipeline.sendUpstream(StaticChannelPipeline.java:362)

    at org.jboss.netty.channel.StaticChannelPipeline$StaticChannelHandlerContext.sendUpstream(StaticChannelPipeline.java:514)

    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:287)

    at org.hornetq.core.remoting.impl.netty.HornetQFrameDecoder2.decode(HornetQFrameDecoder2.java:169)

    at org.hornetq.core.remoting.impl.netty.HornetQFrameDecoder2.messageReceived(HornetQFrameDecoder2.java:134)

    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)

    at org.jboss.netty.channel.StaticChannelPipeline.sendUpstream(StaticChannelPipeline.java:362)

    at org.jboss.netty.channel.StaticChannelPipeline.sendUpstream(StaticChannelPipeline.java:357)

    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)

    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)

    at org.jboss.netty.channel.socket.oio.OioWorker.run(OioWorker.java:90)

    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)

    at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)

    at org.jboss.netty.util.VirtualExecutorService$ChildExecutorRunnable.run(VirtualExecutorService.java:181)

    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:662)

"main":

    at sun.misc.Unsafe.park(Native Method)

    - parking to wait for  <0x00000007d7d65078> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)

    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)

    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)

    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:842)

    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1178)

    at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:807)

    at org.hornetq.core.journal.impl.JournalImpl.stop(JournalImpl.java:2392)

    - locked <0x00000007d7d642c0> (a org.hornetq.core.journal.impl.JournalImpl)

    at org.hornetq.core.persistence.impl.journal.JournalStorageManager.stop(JournalStorageManager.java:2193)

    - locked <0x00000007d7d62120> (a org.hornetq.core.persistence.impl.journal.JournalStorageManager)

    at org.hornetq.core.persistence.impl.journal.JournalStorageManager.stop(JournalStorageManager.java:2172)

    at org.hornetq.core.replication.ReplicationEndpoint.stop(ReplicationEndpoint.java:338)

    - locked <0x00000007d79f4778> (a org.hornetq.core.replication.ReplicationEndpoint)

    at org.hornetq.core.server.impl.HornetQServerImpl.stop(HornetQServerImpl.java:582)

    - locked <0x00000007d752aab8> (a java.lang.Object)

    - locked <0x00000007d752a320> (a org.hornetq.core.server.impl.HornetQServerImpl)

    at org.hornetq.core.server.impl.HornetQServerImpl.stop(HornetQServerImpl.java:489)

    at org.hornetq.core.server.impl.HornetQServerImpl.stop(HornetQServerImpl.java:450)

    at org.hornetq.tests.util.UnitTestCase.stopComponent(UnitTestCase.java:1528)

    at org.hornetq.tests.util.UnitTestCase.tearDown(UnitTestCase.java:975)

    - locked <0x0000000787655500> (a java.util.ArrayList)

    at org.hornetq.tests.util.ServiceTestBase.tearDown(ServiceTestBase.java:86)

    at org.hornetq.tests.integration.cluster.distribution.ClusterTestBase.tearDown(ClusterTestBase.java:182)

    at junit.framework.TestCase.runBare(TestCase.java:136)

    at junit.framework.TestResult$1.protect(TestResult.java:106)

    at junit.framework.TestResult.runProtected(TestResult.java:124)

    at junit.framework.TestResult.run(TestResult.java:109)

    at junit.framework.TestCase.run(TestCase.java:120)

    at junit.framework.TestSuite.runTest(TestSuite.java:230)

    at junit.framework.TestSuite.run(TestSuite.java:225)

    at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:95)

    at org.apache.maven.surefire.junit.JUnit3Provider.executeTestSet(JUnit3Provider.java:121)

    at org.apache.maven.surefire.junit.JUnit3Provider.invoke(JUnit3Provider.java:98)

    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 org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)

    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)

    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)

    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103)

    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74)

 

Found 1 deadlock.