[
https://issues.apache.org/activemq/browse/AMQ-2320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52934#action_52934
]
Eric commented on AMQ-2320:
---------------------------
Hi !
I believed I found the major reason of the active threads. But, no, ....
In the same conditions (simultaneous stops) I had a case where one Session
thread was active again (like before I discover that I forgot to stop the
consumerEventSource object).
And I had a case where the consumerEventSource.stop was blocked without
deadlock detected, and where CTRL-C doesn't interrupt it. Only Kill -9
interrupted the process.
Here is the stack trace of my shutdown hook which is called on a CTRL-C
interruption.
Name: Thread-1
State: WAITING on java.lang.obj...@9866417
Total blocked: 0 Total waited: 1
Stack trace:
java.lang.Object.wait(Native Method)
org.apache.activemq.thread.DedicatedTaskRunner.shutdown(DedicatedTaskRunner.java:72)
org.apache.activemq.thread.DedicatedTaskRunner.shutdown(DedicatedTaskRunner.java:83)
org.apache.activemq.ActiveMQSessionExecutor.stop(ActiveMQSessionExecutor.java:142)
org.apache.activemq.ActiveMQSession.dispose(ActiveMQSession.java:579)
- locked org.apache.activemq.activemqsess...@22cf38a2
org.apache.activemq.ActiveMQSession.close(ActiveMQSession.java:555)
org.apache.activemq.advisory.ConsumerEventSource.stop(ConsumerEventSource.java:83)
atosbus.transport.jms.CJMSTransport$CAMQConsumerEventServiceLink.stop(CJMSTransport.java:190)
atosbus.transport.jms.CJMSTransport.unregisterService(CJMSTransport.java:300)
- locked atosbus.transport.jms.cjmstransp...@6a3b8b49
atosbus.core.service.CService.setServiceState(CService.java:1044)
atosbus.core.service.CService.releaseAllResources(CService.java:2137)
atosbus.core.system.CManagedComponent.removeService(CManagedComponent.java:465)
- locked atosbus.core.service.cserv...@40363068
- locked atosbus.core.system.cinsta...@2143ed74
atosbus.core.system.CManagedComponent.removeAllServices(CManagedComponent.java:513)
atosbus.core.system.CInstance.removeAllApplicativeServices(CInstance.java:433)
atosbus.core.system.CInstance.disconnectBus(CInstance.java:296)
atosbus.core.system.CComponent$CComponentShutdownHook.run(CComponent.java:159)
And I put here an image of the JMX console thread wiew which shows that there
is no deadlock .
Eric-AWL
> Session are not deleted when several processes terminate simultaneously in a
> "network of broker" complex configuration
> ----------------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2320
> URL: https://issues.apache.org/activemq/browse/AMQ-2320
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.2.0
> Environment: Linux Redhat. JVM 1.6. AMQ 5.2
> Reporter: Eric
> Attachments: Pb AMQ Session.JPG
>
>
> I would like to add a schema. I hope I will be able to add it later. I don't
> see it
> I have 3 processes with one embedded broker (BSV, client, server) in the same
> network of brokers (non duplex but bi-directionnal).
> I have a fourth standalone broker
> My "client" and my "server" process are connected a second time with a
> "manual" tcp connection to the BSV process.
> My "client" and my "server" process are connected a third time with a
> "manual" tcp connection on the standalone broker.
> In this case, if my process BSV is stopped by an interrupt (CTRL-C) (which
> closes the embedded connection, and the embedded broker), and if
> simultaneously, I want to stop gracefully my "client" process (close all
> session, close all "manual" connection, stop embedded broker), one session
> thread stays up and never terminates
> "ActiveMQ Session: ID:td0sib01s.priv.atos.fr-51590-1247070640728-0:2:3"
> prio=10 tid=0x000000000e83a400 nid=0x5749 in Object.wait()
> [0x00000000469c8000..0x00000000469c8d10]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00002aaaca868380> (a java.lang.Object)
> at java.lang.Object.wait(Object.java:502)
> at
> org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:105)
> - locked <0x00002aaaca868380> (a java.lang.Object)
> at
> org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
> It is a session associated with the BSV link (I don't know if it is a session
> associated with the network of broker, or a session associated with my manual
> connection)
> A CTRL-C on the process terminates the process
> It doesn't happen if stop are not simultaneously done.
> Eric-AWL
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.