activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric (JIRA)" <>
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


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)
   - locked org.apache.activemq.ActiveMQSession@22cf38a2
   - locked atosbus.transport.jms.CJMSTransport@6a3b8b49
   - locked atosbus.core.service.CService@40363068
   - locked atosbus.core.system.CInstance@2143ed74

And I put here an image of the JMX console thread wiew which shows that there is no deadlock


> Session are not deleted when several processes terminate simultaneously in a "network
of broker" complex configuration
> ----------------------------------------------------------------------------------------------------------------------
>                 Key: AMQ-2320
>                 URL:
>             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:" 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(
>       at org.apache.activemq.thread.DedicatedTaskRunner.runTask(
>       - locked <0x00002aaaca868380> (a java.lang.Object)
>       at org.apache.activemq.thread.DedicatedTaskRunner$
> 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.

View raw message