activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-2320) Session are not deleted when several processes terminate simultaneously in a "network of broker" complex configuration
Date Fri, 24 Jul 2009 05:56:34 GMT

    [ 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.Object@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.ActiveMQSession@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.CJMSTransport@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.CService@40363068
   - locked atosbus.core.system.CInstance@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.


Mime
View raw message