FW: [celtix-dev] RE: [activemq-user] Strange blocking createDurableSubscriber() call in ActiveMQ 3.2

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

FW: [celtix-dev] RE: [activemq-user] Strange blocking createDurableSubscriber() call in ActiveMQ 3.2

Ulhas Bhole
FW: [celtix-dev] RE: [activemq-user] Strange blocking createDurableSubscriber() call in ActiveMQ 3.2

Hi all,

Does anyone know what may be wrong from the stack trace? I also seeing Broker startup failure once in a while after the following problem with the stack trace attached because of the size restricition. The only option I have here is to cleanup var directory and start over clean.

Any help is appriciated.


Ulhas Bhole.

-----Original Message-----
From:   Bhole, Ulhas
Sent:   Tue 07/02/2006 18:03
To:     [hidden email]
Cc:     [hidden email]
Subject:        [activemq-user] Strange blocking createDurableSubscriber() call in ActiveMQ 3.2


I am trying to use ActiveMQ 3.2 Durable Topic Subscrition in one of the ObjectWeb Celtix ESB samples. I am working on Redhat Linux 9 but saw similar problem on Windows also. I am getting problem using the durable subscription in a way that It is blocking on createDurableSubscriber() call.
The problem occures after some repeated shutdown and restart of JMS Broker and my Client/Server (producer/receivers).

I tried to reproduce the problem with the pure JMS client(producer) and server(receiver) but was unable to produce it. However, once I get the problem with the my Celtix demo. my Pure Server(receiver) which also would block in the same call with similar stack trace.

Here is a stack trace of the blocking call from Pure Server(receiver).

"JmsSessionDispatcher: 1" prio=1 tid=0x083f4380 nid=0x271a in Object.wait() [0xbe7ff000..0xbe7ff5dc]
        at java.lang.Object.wait(Native Method)
        at org.activemq.io.util.MemoryBoundedQueue.dequeue(MemoryBoundedQueue.java:242)
        - locked <0x659e0060> (a java.lang.Object)
        at org.activemq.ActiveMQSessionExecutor.run(ActiveMQSessionExecutor.java:93)
        at java.lang.Thread.run(Thread.java:595)

"TcpTransportChannel: Socket[addr=localhost/,port=61616,localport=33917]" prio=1 tid=0x083b0340 nid=0x2717 runnable [0xbe9ff000..0xbe9ff75c]
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
        - locked <0x65ef9f38> (a java.io.BufferedInputStream)
        at java.io.DataInputStream.readByte(DataInputStream.java:241)
        at org.activemq.io.AbstractWireFormat.readPacket(AbstractWireFormat.java:230)
        at org.activemq.transport.tcp.TcpTransportChannel.run(TcpTransportChannel.java:313)
        at java.lang.Thread.run(Thread.java:595)

"Low Memory Detector" daemon prio=1 tid=0x080a50f0 nid=0x2714 runnable [0x00000000..0x00000000]

"CompilerThread0" daemon prio=1 tid=0x080a3c70 nid=0x2713 waiting on condition [0x00000000..0xbefff1c4]

"Signal Dispatcher" daemon prio=1 tid=0x080a2be0 nid=0x2712 waiting on condition [0x00000000..0x00000000]

"Finalizer" daemon prio=1 tid=0x0809bf38 nid=0x2711 in Object.wait() [0xbf3ff000..0xbf3ff4dc]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x65e5ac20> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x65e5ac20> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=1 tid=0x0809b240 nid=0x2710 in Object.wait() [0xbf5ff000..0xbf5ff65c]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x65e5aca0> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:474)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x65e5aca0> (a java.lang.ref.Reference$Lock)

"main" prio=1 tid=0x0805bce0 nid=0x270d in Object.wait() [0xbfffc000..0xbfffce78]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x6598dde0> (a java.lang.Object)
        at org.activemq.message.ReceiptHolder.getReceipt(ReceiptHolder.java:68)
        - locked <0x6598dde0> (a java.lang.Object)
        at org.activemq.transport.TransportChannelSupport.send(TransportChannelSupport.java:146)
        at org.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1377)
        at org.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1362)
        at org.activemq.ActiveMQSession.addConsumer(ActiveMQSession.java:1198)
        at org.activemq.ActiveMQMessageConsumer.<init>(ActiveMQMessageConsumer.java:145)
        at org.activemq.ActiveMQTopicSubscriber.<init>(ActiveMQTopicSubscriber.java:116)
        at org.activemq.ActiveMQSession.createDurableSubscriber(ActiveMQSession.java:793)
        at org.activemq.ActiveMQTopicSession.createDurableSubscriber(ActiveMQTopicSession.java:156)
        at DurableSubscriberServer.run(DurableSubscriberServer.java:45)
        at DurableSubscriberServer.main(DurableSubscriberServer.java:24)

"VM Thread" prio=1 tid=0x080967e0 nid=0x270f runnable

"VM Periodic Task Thread" prio=1 tid=0x080c7df8 nid=0x2715 waiting on condition

Can anyone help me in telling what the problem might be?

If required I have the state of the ActiveMQ Journal and Database on which this problem is occuring. One more thing that I observed is after coming at this state If I Ctrl-C the JMS Broker It shuts down TCP transport Adapter and hangs in Shutdown Hook.


Ulhas Bhole

broker-failure-stack.txt (9K) Download Attachment