You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Dejan Bosanac (JIRA)" <ji...@apache.org> on 2010/12/02 14:14:08 UTC
[jira] Updated: (AMQ-2026)
PublishOnQueueConsumedMessageUsingActivemqXMLTest sometimes hangs on
tearDown
[ https://issues.apache.org/jira/browse/AMQ-2026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dejan Bosanac updated AMQ-2026:
-------------------------------
Fix Version/s: (was: 5.4.2)
5.5.0
> PublishOnQueueConsumedMessageUsingActivemqXMLTest sometimes hangs on tearDown
> ------------------------------------------------------------------------------
>
> Key: AMQ-2026
> URL: https://issues.apache.org/jira/browse/AMQ-2026
> Project: ActiveMQ
> Issue Type: Bug
> Components: Test Cases
> Affects Versions: 5.2.0
> Environment: Solaris 9 9/04 SPARC, Java 1.5.0_11-b03, Maven 2.0.9, ActiveMQ 5.2.0 (Revision: 724629)
> Reporter: Eduardo Corral
> Priority: Minor
> Fix For: 5.5.0
>
> Attachments: PublishOnQueueConsumedMessageUsingActivemqXMLTest.stack.txt
>
>
> While executing the full install, with {{maven clean install}}, tests sometimes get stuck on {{PublishOnQueueConsumedMessageUsingActivemqXMLTest}}. A thread dump reveals that main thread is waiting for VM transport to stop on tearDown:
> {noformat}
> "ActiveMQ Transport Stopper: vm://localhost#0" prio=10 tid=0x00129790 nid=0x6f waiting on condition [0xf167e000..0xf167fc28]
> at sun.misc.Unsafe.park(Native Method)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:681)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:837)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1144)
> at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:199)
> at org.apache.activemq.store.journal.JournalPersistenceAdapter.checkpoint(JournalPersistenceAdapter.java:319)
> at org.apache.activemq.store.journal.JournalMessageStore.getMessageCount(JournalMessageStore.java:403)
> at org.apache.activemq.broker.region.cursors.QueueStorePrefetch.getStoreSize(QueueStorePrefetch.java:63)
> - locked <0xb4cbad70> (a org.apache.activemq.broker.region.cursors.QueueStorePrefetch)
> at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.gc(AbstractStoreCursor.java:212)
> - locked <0xb4cbad70> (a org.apache.activemq.broker.region.cursors.QueueStorePrefetch)
> at org.apache.activemq.broker.region.cursors.StoreQueueCursor.gc(StoreQueueCursor.java:257)
> - locked <0xb4cbba18> (a org.apache.activemq.broker.region.cursors.StoreQueueCursor)
> at org.apache.activemq.broker.region.Queue.removeSubscription(Queue.java:308)
> at org.apache.activemq.broker.region.AbstractRegion.removeConsumer(AbstractRegion.java:324)
> at org.apache.activemq.broker.region.RegionBroker.removeConsumer(RegionBroker.java:392)
> at org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:114)
> at org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:114)
> at org.apache.activemq.advisory.AdvisoryBroker.removeConsumer(AdvisoryBroker.java:222)
> at org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:114)
> at org.apache.activemq.broker.MutableBrokerFilter.removeConsumer(MutableBrokerFilter.java:121)
> at org.apache.activemq.broker.TransportConnection.processRemoveConsumer(TransportConnection.java:565)
> at org.apache.activemq.broker.TransportConnection.processRemoveSession(TransportConnection.java:600)
> at org.apache.activemq.broker.TransportConnection.processRemoveConnection(TransportConnection.java:705)
> - locked <0xb4c1e158> (a org.apache.activemq.broker.TransportConnection)
> at org.apache.activemq.broker.TransportConnection.doStop(TransportConnection.java:1000)
> at org.apache.activemq.broker.TransportConnection$3.run(TransportConnection.java:925)
> "main" prio=10 tid=0x00036a00 nid=0x1 waiting for monitor entry [0xffbfc000..0xffbfe8b8]
> at org.apache.activemq.broker.region.cursors.StoreQueueCursor.stop(StoreQueueCursor.java:79)
> - waiting to lock <0xb4cbba18> (a org.apache.activemq.broker.region.cursors.StoreQueueCursor)
> at org.apache.activemq.broker.region.Queue.stop(Queue.java:541)
> at org.apache.activemq.broker.region.AbstractRegion.stop(AbstractRegion.java:109)
> - locked <0xb4baed50> (a java.lang.Object)
> at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)
> at org.apache.activemq.broker.region.RegionBroker.doStop(RegionBroker.java:614)
> at org.apache.activemq.broker.jmx.ManagedRegionBroker.doStop(ManagedRegionBroker.java:109)
> at org.apache.activemq.broker.region.RegionBroker.stop(RegionBroker.java:185)
> at org.apache.activemq.broker.TransactionBroker.stop(TransactionBroker.java:117)
> at org.apache.activemq.broker.BrokerFilter.stop(BrokerFilter.java:158)
> at org.apache.activemq.broker.BrokerFilter.stop(BrokerFilter.java:158)
> at org.apache.activemq.broker.BrokerService$3.stop(BrokerService.java:1580)
> at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)
> at org.apache.activemq.broker.BrokerService.stop(BrokerService.java:521)
> at org.apache.activemq.usecases.PublishOnQueueConsumedMessageUsingActivemqXMLTest.tearDown(PublishOnQueueConsumedMessageUsingActivemqXMLTest.java:71)
> at junit.framework.TestCase.runBare(TestCase.java:130)
> 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:118)
> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> at junit.framework.TestSuite.run(TestSuite.java:203)
> 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:585)
> at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:210)
> at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:135)
> at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:160)
> at org.apache.maven.surefire.Surefire.run(Surefire.java:81)
> 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:585)
> at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:182)
> at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:743)
> {noformat}
> {{org.apache.activemq.store.journal.JournalPersistenceAdapter.checkpoint}} is waiting on
> {noformat}
> if (sync) {
> LOG.debug("Waking for checkpoint to complete.");
> latch.await();
> }
> {noformat}
> But on the thread dump I see no {{ActiveMQ Journal Checkpoint Worker}} to perform the actual {{org.apache.activemq.store.journal.JournalPersistenceAdapter.doCheckpoint}}. I haven't thoroughly inspected the code, but it seems that the journal is already stopped when the message count is requested. ¿Is this test-setup related or is some problem with the stop sequence?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.