activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guillaume Nodet" <gno...@gmail.com>
Subject Deadlock on 4.0.2
Date Fri, 11 Aug 2006 13:25:57 GMT
I sometime have deadlocks while running junit tests that involve ActiveMQ.
Following is a stack trace i dumped.
As you can see, the two last threads are deadlocked because of the
MutexTransport.
This cause the first thread (main thread) to hang forever.

    Thread [main] (Suspended)
        MutexTransport.oneway(Command) line: 44
             ==> MutexTransport (id=292)
        ResponseCorrelator.oneway(Command) line: 58
        ManagedTransportConnection(TransportConnection).dispatch(Command)
line: 211

ManagedTransportConnection(AbstractConnection).processDispatch(Command)
line: 628
        ManagedTransportConnection(AbstractConnection).dispatchSync(Command)
line: 605
        TopicSubscription.dispatch(MessageReference) line: 315
        TopicSubscription.add(MessageReference) line: 74
        SimpleDispatchPolicy.dispatch(ConnectionContext, MessageReference,
MessageEvaluationContext, List) line: 50
        Topic.dispatch(ConnectionContext, Message) line: 443
        Topic.send(ConnectionContext, Message) line: 254
        ManagedTopicRegion(AbstractRegion).send(ConnectionContext, Message)
line: 225
        ManagedRegionBroker(RegionBroker).send(ConnectionContext, Message)
line: 345
        TransactionBroker.send(ConnectionContext, Message) line: 192
        AdvisoryBroker(BrokerFilter).send(ConnectionContext, Message) line:
113
        CompositeDestinationBroker.send(ConnectionContext, Message) line:
97
        BrokerService$2(MutableBrokerFilter).send(ConnectionContext,
Message) line: 126

ManagedTransportConnection(AbstractConnection).processMessage(Message) line:
377
        ActiveMQObjectMessage(ActiveMQMessage).visit(CommandVisitor) line:
590
        ManagedTransportConnection(AbstractConnection).service(Command)
line: 226
        TransportConnection$1.onCommand(Command) line: 62
        ResponseCorrelator.onCommand(Command) line: 91
        MutexTransport(TransportFilter).onCommand(Command) line: 63
        VMTransportServer$1(VMTransport).oneway(Command) line: 76
        MutexTransport.oneway(Command) line: 44
            => MutexTransport (id=314)
        ResponseCorrelator.oneway(Command) line: 58
        ActiveMQConnection.asyncSendPacket(Command) line: 1092
        ActiveMQSession.send(ActiveMQMessageProducer, ActiveMQDestination,
Message, int, int, long) line: 1553
        ActiveMQMessageProducer.send(Destination, Message, int, int, long)
line: 462
        ActiveMQMessageProducer.send(Message) line: 356
        JCAFlow.sendJmsMessage(Destination, Serializable, boolean, boolean)
line: 707
        JCAFlow.onInternalEndpointUnregistered(EndpointEvent, boolean) line:
462
        JCAFlow$1.internalEndpointUnregistered(EndpointEvent) line: 245
        EndpointRegistry.fireEvent(ServiceEndpoint, int) line: 575
        EndpointRegistry.unregisterInternalEndpoint(ComponentContext,
InternalEndpoint) line: 199
        Registry.deactivateEndpoint(ComponentContext, InternalEndpoint)
line: 205
        ComponentContextImpl.deactivateEndpoint(ServiceEndpoint) line:
157
        ReceiverComponent(PojoSupport).shutDown() line: 103
        ComponentMBeanImpl.doShutDown() line: 335
        ComponentRegistry.shutDown() line: 105
        Registry.shutDown() line: 142
        SpringJBIContainer(JBIContainer).shutDown() line: 601
        SpringJBIContainer.destroy() line: 184
        DisposableBeanAdapter.destroy() line: 97
        DefaultListableBeanFactory(AbstractBeanFactory).destroyBean(String,
Object) line: 1159

DefaultListableBeanFactory(AbstractBeanFactory).destroyDisposableBean(String)
line: 1131
        DefaultListableBeanFactory(AbstractBeanFactory).destroySingletons()
line: 660
        ClassPathXmlApplicationContext(AbstractApplicationContext).doClose()
line: 594
        ClassPathXmlApplicationContext(AbstractApplicationContext).close()
line: 563
        ClassPathXmlApplicationContext(AbstractApplicationContext).destroy()
line: 552
        JmsSpringJcaTest(SpringTestSupport).tearDown() line: 66
        JmsSpringJcaTest.tearDown() line: 52
        JmsSpringJcaTest(TestCase).runBare() line: 130
        TestResult$1.protect() line: 106
        TestResult.runProtected(Test, Protectable) line: 124
        TestResult.run(TestCase) line: 109
        JmsSpringJcaTest(TestCase).run(TestResult) line: 118
        TestSuite.runTest(Test, TestResult) line: 208
        TestSuite.run(TestResult) line: 203
        JUnit3TestReference.run(TestExecution) line: 128
        TestExecution.run(ITestReference[]) line: 38
        RemoteTestRunner.runTests(String[], String, TestExecution) line:
460
        RemoteTestRunner.runTests(TestExecution) line: 673
        RemoteTestRunner.run() line: 386
        RemoteTestRunner.main(String[]) line: 196
    Thread [ActiveMQ Session Task] (Suspended)
        MutexTransport.oneway(Command) line: 44
            ==> MutexTransport (id=419)
        ResponseCorrelator.oneway(Command) line: 58
        ActiveMQConnection.asyncSendPacket(Command) line: 1092
        ActiveMQSession.<init>(ActiveMQConnection, SessionId, int, boolean,
boolean) line: 227
        ActiveMQConnection.createSession(boolean, int) line: 274
        ServerSessionPoolImpl.createServerSessionImpl() line: 60
        ServerSessionPoolImpl.getServerSession() line: 113
        ActiveMQConnectionConsumer.dispatch(MessageDispatch) line: 135
        ActiveMQConnection.onCommand(Command) line: 1403
        ResponseCorrelator.onCommand(Command) line: 91
        MutexTransport(TransportFilter).onCommand(Command) line: 63
        VMTransport.oneway(Command) line: 76
        MutexTransport.oneway(Command) line: 44
            ==> MutexTransport (id=292)
        ResponseCorrelator.oneway(Command) line: 58
        ManagedTransportConnection(TransportConnection).dispatch(Command)
line: 211

ManagedTransportConnection(AbstractConnection).processDispatch(Command)
line: 628
        ManagedTransportConnection(AbstractConnection).dispatchSync(Command)
line: 605
        TopicSubscription.dispatch(MessageReference) line: 315
        TopicSubscription.add(MessageReference) line: 74
        SimpleDispatchPolicy.dispatch(ConnectionContext, MessageReference,
MessageEvaluationContext, List) line: 50
        Topic.dispatch(ConnectionContext, Message) line: 443
        Topic.send(ConnectionContext, Message) line: 254
        ManagedTopicRegion(AbstractRegion).send(ConnectionContext, Message)
line: 225
        ManagedRegionBroker(RegionBroker).send(ConnectionContext, Message)
line: 345
        TransactionBroker.send(ConnectionContext, Message) line: 192
        AdvisoryBroker(BrokerFilter).send(ConnectionContext, Message) line:
113
        CompositeDestinationBroker.send(ConnectionContext, Message) line:
97
        BrokerService$2(MutableBrokerFilter).send(ConnectionContext,
Message) line: 126

ManagedTransportConnection(AbstractConnection).processMessage(Message) line:
377
        ActiveMQObjectMessage(ActiveMQMessage).visit(CommandVisitor) line:
590
        ManagedTransportConnection(AbstractConnection).service(Command)
line: 226
        TransportConnection$1.onCommand(Command) line: 62
        ResponseCorrelator.onCommand(Command) line: 91
        MutexTransport(TransportFilter).onCommand(Command) line: 63
        VMTransportServer$1(VMTransport).oneway(Command) line: 76
        MutexTransport.oneway(Command) line: 44
            ==> MutexTransport (id=534)
        ResponseCorrelator.oneway(Command) line: 58
        ActiveMQConnection.asyncSendPacket(Command) line: 1092
        ActiveMQSession.send(ActiveMQMessageProducer, ActiveMQDestination,
Message, int, int, long) line: 1553
        ActiveMQMessageProducer.send(Destination, Message, int, int, long)
line: 462
        ActiveMQMessageProducer.send(Message) line: 356
        JCAFlow.sendJmsMessage(Destination, Serializable, boolean, boolean)
line: 707
        JCAFlow.onInternalEndpointRegistered(EndpointEvent, boolean) line:
445
        JCAFlow.onAdvisoryMessage(Object) line: 618
        JCAFlow$4.onMessage(Message) line: 336
        ActiveMQMessageConsumer.dispatch(MessageDispatch) line: 795
        ActiveMQSessionExecutor.dispatch(MessageDispatch) line: 96
        ActiveMQSessionExecutor.iterate() line: 149
        PooledTaskRunner.runTask() line: 110
        PooledTaskRunner.access$100(PooledTaskRunner) line: 25
        PooledTaskRunner$1.run() line: 43
        ThreadPoolExecutor$Worker.runTask(Runnable) line: 650
        ThreadPoolExecutor$Worker.run() line: 675
        Thread.run() line: 595
    Thread [Thread-87] (Suspended)
        MutexTransport.oneway(Command) line: 44
            ==> MutexTransport (id=292)
        ResponseCorrelator.oneway(Command) line: 58
        ManagedTransportConnection(TransportConnection).dispatch(Command)
line: 211
        TransportConnection$1.onCommand(Command) line: 64
        ResponseCorrelator.onCommand(Command) line: 91
        MutexTransport(TransportFilter).onCommand(Command) line: 63
        VMTransportServer$1(VMTransport).oneway(Command) line: 76
        MutexTransport.oneway(Command) line: 44
            ==> MutexTransport (id=419)
        ResponseCorrelator.asyncRequest(Command, ResponseCallback) line:
66
        ResponseCorrelator.request(Command) line: 71
        ActiveMQConnection.syncSendPacket(Command) line: 1112
        ActiveMQConnectionConsumer.<init>(ActiveMQConnection,
ServerSessionPool, ConsumerInfo) line: 85
        ActiveMQConnection.createConnectionConsumer(Destination, String,
ServerSessionPool, int, boolean) line: 1022
        ActiveMQEndpointWorker$1.run() line: 163
        WorkerContext.run() line: 291
        PooledExecutor$Worker.run() line: not available
        Thread.run() line: 595


-- 
Cheers,
Guillaume Nodet

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message