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.