qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Aschenbrenner <easch...@icubic.de>
Subject Re: Qpid JMS: Message listener blocks other message listener on different session
Date Wed, 28 Jan 2015 10:57:59 GMT

Ok, here are the missing details:

I'm using the Java Qpid JMS client for AMQP 1.0 (version 0.30).

The broker I'm connecting to also uses AMQP 1.0 and is from Red Hat (as far
as I know). Actually I don't have other informations about the broker than
the AMQP version.

To make the problem clearer here is a more simpler setup of the problem:

I have 2 topic message listeners listen to different topics. If listener 1
receives a message it calls Thread.sleep(Long.MAX_VALUE) in it's onMessage()
method in my test case.
>From now on listener 2 never gets a message from the AMQP broker again.

I attached the stack trace at the end. 

Thanks in advance,
Erik

PS: I changed my code now so that listener 1 is not not blocking anymore but
nevertheless I would like to know what is the problem here because I thought
that the 
message listeners should be independent.



2015-01-28 11:40:12
Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.65-b04 mixed mode):

"RMI TCP Connection(2)-192.168.3.33" daemon prio=6 tid=0x0000000011f6e000
nid=0x21bc runnable [0x00000000148af000]
   java.lang.Thread.State: RUNNABLE
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(Unknown Source)
	at java.net.SocketInputStream.read(Unknown Source)
	at java.io.BufferedInputStream.fill(Unknown Source)
	at java.io.BufferedInputStream.read(Unknown Source)
	- locked <0x00000007b03e6e68> (a java.io.BufferedInputStream)
	at java.io.FilterInputStream.read(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown
Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- <0x00000007afe904a0> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"JMX server connection timeout 18" daemon prio=6 tid=0x0000000011f73000
nid=0x2128 in Object.wait() [0x00000000146ef000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000007b01435a8> (a [I)
	at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(Unknown
Source)
	- locked <0x00000007b01435a8> (a [I)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- None

"RMI Scheduler(0)" daemon prio=6 tid=0x0000000012308000 nid=0x2290 waiting
on condition [0x00000000144ff000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000007afe49618> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
	at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown
Source)
	at
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown
Source)
	at
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown
Source)
	at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- None

"RMI TCP Connection(1)-192.168.3.33" daemon prio=6 tid=0x000000001217d800
nid=0x2138 runnable [0x00000000143be000]
   java.lang.Thread.State: RUNNABLE
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(Unknown Source)
	at java.net.SocketInputStream.read(Unknown Source)
	at java.io.BufferedInputStream.fill(Unknown Source)
	at java.io.BufferedInputStream.read(Unknown Source)
	- locked <0x00000007b00ef710> (a java.io.BufferedInputStream)
	at java.io.FilterInputStream.read(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown
Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- <0x00000007afe8e0d0> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"RMI TCP Accept-0" daemon prio=6 tid=0x0000000013158800 nid=0x9c4 runnable
[0x000000001421e000]
   java.lang.Thread.State: RUNNABLE
	at java.net.DualStackPlainSocketImpl.accept0(Native Method)
	at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
	at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
	at java.net.PlainSocketImpl.accept(Unknown Source)
	- locked <0x00000007afe4ee58> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(Unknown Source)
	at java.net.ServerSocket.accept(Unknown Source)
	at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(Unknown
Source)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Unknown
Source)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- None

"Thread-3" prio=6 tid=0x0000000011f5b000 nid=0x21b8 waiting on condition
[0x0000000012fbe000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at
de.amqptest.connection.MasterDataRetrievalTest$1.onMessage(MasterDataRetrievalTest.java:306)
	at
org.apache.qpid.amqp_1_0.jms.impl.SessionImpl$Dispatcher.run(SessionImpl.java:942)
	- locked <0x0000000700a0e518> (a
org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- None

"Thread-2" prio=6 tid=0x0000000011f7d000 nid=0x1554 in Object.wait()
[0x0000000012d9f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0000000700a0e518> (a
org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
	at java.lang.Object.wait(Object.java:503)
	at
org.apache.qpid.amqp_1_0.jms.impl.SessionImpl$Dispatcher.run(SessionImpl.java:901)
	- locked <0x0000000700a0e518> (a
org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- None

"Thread-1" prio=6 tid=0x0000000011e9b000 nid=0x1804 in Object.wait()
[0x0000000012baf000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0000000700a0e518> (a
org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
	at java.lang.Object.wait(Object.java:503)
	at
org.apache.qpid.amqp_1_0.jms.impl.SessionImpl$Dispatcher.run(SessionImpl.java:901)
	- locked <0x0000000700a0e518> (a
org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- None

"QpidConnectionInputThread-0" daemon prio=6 tid=0x000000001190f000
nid=0x23d4 waiting for monitor entry [0x0000000011cef000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at
org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.closedForInput(ConnectionEndpoint.java:730)
	- waiting to lock <0x0000000700a0e518> (a
org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
	at
org.apache.qpid.amqp_1_0.framing.FrameHandler.isDone(FrameHandler.java:328)
	at
org.apache.qpid.amqp_1_0.framing.ConnectionHandler.isDone(ConnectionHandler.java:83)
	at
org.apache.qpid.amqp_1_0.client.TCPTransportProvier.doRead(TCPTransportProvier.java:215)
	at
org.apache.qpid.amqp_1_0.client.TCPTransportProvier.access$000(TCPTransportProvier.java:43)
	at
org.apache.qpid.amqp_1_0.client.TCPTransportProvier$1.run(TCPTransportProvier.java:158)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- None

"QpidConnectionOutputThread-0" daemon prio=6 tid=0x00000000116b2000
nid=0x2364 waiting for monitor entry [0x00000000128cf000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at
org.apache.qpid.amqp_1_0.framing.ConnectionHandler$FrameOutput.getNextFrame(ConnectionHandler.java:207)
	- waiting to lock <0x0000000700a0e518> (a
org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
	at
org.apache.qpid.amqp_1_0.framing.ConnectionHandler$FrameOutput$2.getNextFrame(ConnectionHandler.java:125)
	at
org.apache.qpid.amqp_1_0.framing.ConnectionHandler$FrameToBytesSourceAdapter.getBytes(ConnectionHandler.java:317)
	at
org.apache.qpid.amqp_1_0.framing.ConnectionHandler$SequentialBytesSource.getBytes(ConnectionHandler.java:406)
	- locked <0x0000000700a1a570> (a
org.apache.qpid.amqp_1_0.framing.ConnectionHandler$SequentialBytesSource)
	at
org.apache.qpid.amqp_1_0.framing.ConnectionHandler$BytesOutputHandler.run(ConnectionHandler.java:508)
	at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
	- None

"Service Thread" daemon prio=6 tid=0x000000000f94e800 nid=0x1c8c runnable
[0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"C2 CompilerThread1" daemon prio=10 tid=0x000000000f94e000 nid=0x4dc waiting
on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"C2 CompilerThread0" daemon prio=10 tid=0x000000000f949000 nid=0x1080
waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Attach Listener" daemon prio=10 tid=0x000000000f947000 nid=0x1e00 waiting
on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Signal Dispatcher" daemon prio=10 tid=0x000000000f940000 nid=0xff4 runnable
[0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Finalizer" daemon prio=8 tid=0x000000000f8e7000 nid=0x1a88 in Object.wait()
[0x0000000010ddf000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0000000700a11190> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(Unknown Source)
	- locked <0x0000000700a11190> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(Unknown Source)
	at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

   Locked ownable synchronizers:
	- None

"Reference Handler" daemon prio=10 tid=0x000000000f8e0000 nid=0x170 in
Object.wait() [0x0000000010b1f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0000000700a10ba8> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:503)
	at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
	- locked <0x0000000700a10ba8> (a java.lang.ref.Reference$Lock)

   Locked ownable synchronizers:
	- None

"main" prio=6 tid=0x00000000024be800 nid=0x1354 waiting on condition
[0x00000000027af000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at
de.amqptest.connection.MasterDataRetrievalTest.doWait(MasterDataRetrievalTest.java:179)
	at
de.amqptest.connection.MasterDataRetrievalTest.run(MasterDataRetrievalTest.java:141)
	at
de.amqptest.connection.MasterDataRetrievalTest.main(MasterDataRetrievalTest.java:85)

   Locked ownable synchronizers:
	- None

"VM Thread" prio=10 tid=0x000000000f8d8800 nid=0xd70 runnable 

"GC task thread#0 (ParallelGC)" prio=6 tid=0x000000000250d000 nid=0x10f4
runnable 

"GC task thread#1 (ParallelGC)" prio=6 tid=0x000000000250f000 nid=0x2310
runnable 

"GC task thread#2 (ParallelGC)" prio=6 tid=0x0000000002510800 nid=0x1ba4
runnable 

"GC task thread#3 (ParallelGC)" prio=6 tid=0x0000000002512000 nid=0x19a4
runnable 

"VM Periodic Task Thread" prio=10 tid=0x000000000f959000 nid=0x114c waiting
on condition 

JNI global references: 169







--
View this message in context: http://qpid.2158936.n2.nabble.com/Qpid-JMS-Message-listener-blocks-other-message-listener-on-different-session-tp7618696p7618985.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Mime
View raw message