[jboss-user] [JBoss Messaging] - Re: long live consumer stops working

bodrin do-not-reply at jboss.com
Thu Jan 31 11:32:09 EST 2008


Unfortunatelly I have reproduced the problem with JBM.1.4.0.SP3 on jboss-4.2.2.GA with jboss-remoting-2.2.2.SP4.

The examples are uploaded and available here: http://www.myjavaserver.com/~dobrin/jboss/examples.zip.
Just extract them into the jboss-messaging-1.4.0.SP3\examples directory. 
They can be compiled/run via ant like all the other examples provided with the JBM package.

The scenrio is:

1. Start JBOSS on machine A (linux). In my case it is a clustered installation with two nodes, but I start only one of them.
2. Start example long-live-queue-consumer on machine B (windows xp) (use run.but, because and forks and no thread dump could be made)
3. Start example long-live-queue-producer on machine B 
  result: the long-live-queue-consumer receives successfuly 10 messages
4. Leave long-live-queue-consumer running without sending any messages for a few hours (in my case 3h)
5. Start example long-live-queue-producer on machine B
  result: expected to see that long-live-queue-consumer will receive 10 messages, but nothing happens


Here is the long-live-queue-consumer thread dump after step 5. :

  | 31.01.2008 15:35:50 onMessage: delegator->JBossMessage[125446]:PERSISTENT, deliveryId=36
  | -----------------------------------------
  | 31.01.2008 15:35:50 onMessage: delegator->JBossMessage[125447]:PERSISTENT, deliveryId=37
  | -----------------------------------------
  | 31.01.2008 15:35:50 onMessage: delegator->JBossMessage[125448]:PERSISTENT, deliveryId=38
  | -----------------------------------------
  | 31.01.2008 15:35:50 onMessage: delegator->JBossMessage[125449]:PERSISTENT, deliveryId=39
  | Listening for transport dt_socket at address: 3000
  | 2008-01-31 18:09:09
  | Full thread dump Java HotSpot(TM) Client VM (1.6.0_02-b06 mixed mode):
  | 
  | "JDWP Transport Listener: dt_socket" daemon prio=6 tid=0x0b1a8800 nid=0xfb0 runnable [0x00000000..0x00000000]
  |    java.lang.Thread.State: RUNNABLE
  | 
  | "Thread-6" daemon prio=6 tid=0x0b502800 nid=0x1098 in Object.wait() [0x0ba0f000..0x0ba0fa14]
  |    java.lang.Thread.State: WAITING (on object monitor)
  |         at java.lang.Object.wait(Native Method)
  |         - waiting on <0x03024c90> (a java.lang.Object)
  |         at java.lang.Object.wait(Object.java:485)
  |         at EDU.oswego.cs.dl.util.concurrent.LinkedQueue.take(LinkedQueue.java:122)
  |         - locked <0x03024c90> (a java.lang.Object)
  |         at EDU.oswego.cs.dl.util.concurrent.QueuedExecutor$RunLoop.run(QueuedExecutor.java:83)
  |         at java.lang.Thread.run(Unknown Source)
  | 
  | "WorkerThread#0[10.58.100.119:3457]" daemon prio=6 tid=0x0b198400 nid=0x11a4 runnable [0x0b9bf000..0x0b9bfa94]
  |    java.lang.Thread.State: RUNNABLE
  |         at java.net.SocketInputStream.socketRead0(Native Method)
  |         at java.net.SocketInputStream.read(Unknown Source)
  |         at java.io.BufferedInputStream.fill(Unknown Source)
  |         at java.io.BufferedInputStream.read(Unknown Source)
  |         - locked <0x03056358> (a java.io.BufferedInputStream)
  |         at java.io.FilterInputStream.read(Unknown Source)
  |         at org.jboss.remoting.transport.socket.ServerThread.readVersion(ServerThread.java:824)
  |         at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:510)
  |         at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:387)
  |         at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166)
  | 
  | "Timer-2" daemon prio=6 tid=0x0b4ea800 nid=0x11bc in Object.wait() [0x0b90f000..0x0b90fb94]
  |    java.lang.Thread.State: TIMED_WAITING (on object monitor)
  |         at java.lang.Object.wait(Native Method)
  |         - waiting on <0x02fdcf60> (a java.util.TaskQueue)
  |         at java.util.TimerThread.mainLoop(Unknown Source)
  |         - locked <0x02fdcf60> (a java.util.TaskQueue)
  |         at java.util.TimerThread.run(Unknown Source)
  | 
  | "control: Socket[addr=centos9.localdomain/10.58.100.119,port=3457,localport=34453]" daemon prio=6 tid=0x0b4ee800 nid=0x14c8 runnable [0x0b8bf000..0x0b8bfc14]
  |    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.FilterInputStream.read(Unknown Source)
  |         at org.jboss.remoting.transport.bisocket.BisocketServerInvoker$ControlConnectionThread.run(BisocketServerInvoker.java:741)
  | 
  | "Timer-1" daemon prio=6 tid=0x0b4ee400 nid=0xec0 in Object.wait() [0x0b86f000..0x0b86fc94]
  |    java.lang.Thread.State: TIMED_WAITING (on object monitor)
  |         at java.lang.Object.wait(Native Method)
  |         - waiting on <0x02fc8140> (a java.util.TaskQueue)
  |         at java.util.TimerThread.mainLoop(Unknown Source)
  |         - locked <0x02fc8140> (a java.util.TaskQueue)
  |         at java.util.TimerThread.run(Unknown Source)
  | 
  | "Timer-0" daemon prio=6 tid=0x0b1b8000 nid=0x9b0 in Object.wait() [0x0b81f000..0x0b81fd14]
  |    java.lang.Thread.State: TIMED_WAITING (on object monitor)
  |         at java.lang.Object.wait(Native Method)
  |         - waiting on <0x02fbca68> (a java.util.TaskQueue)
  |         at java.util.TimerThread.mainLoop(Unknown Source)
  |         - locked <0x02fbca68> (a java.util.TaskQueue)
  |         at java.util.TimerThread.run(Unknown Source)
  | 
  | "RMI Scheduler(0)" daemon prio=6 tid=0x0b1b5800 nid=0xa08 waiting on condition [0x0b3bf000..0x0b3bfd94]
  |    java.lang.Thread.State: WAITING (parking)
  |         at sun.misc.Unsafe.park(Native Method)
  |         - parking to wait for  <0x02f0f6a0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
  |         at java.util.concurrent.locks.LockSupport.park(Unknown Source)
  |         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
  |         at java.util.concurrent.DelayQueue.take(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$Worker.run(Unknown Source)
  |         at java.lang.Thread.run(Unknown Source)
  | 
  | "GC Daemon" daemon prio=2 tid=0x0b1b3c00 nid=0x1394 in Object.wait() [0x0b36f000..0x0b36fa14]
  |    java.lang.Thread.State: TIMED_WAITING (on object monitor)
  |         at java.lang.Object.wait(Native Method)
  |         - waiting on <0x02f083c0> (a sun.misc.GC$LatencyLock)
  |         at sun.misc.GC$Daemon.run(Unknown Source)
  |         - locked <0x02f083c0> (a sun.misc.GC$LatencyLock)
  | 
  | "RMI RenewClean-[centos9.localdomain:1201]" daemon prio=6 tid=0x0b185c00 nid=0x17cc in Object.wait() [0x0b31f000..0x0b31fa94]
  |    java.lang.Thread.State: TIMED_WAITING (on object monitor)
  |         at java.lang.Object.wait(Native Method)
  |         - waiting on <0x02f080c0> (a java.lang.ref.ReferenceQueue$Lock)
  |         at java.lang.ref.ReferenceQueue.remove(Unknown Source)
  |         - locked <0x02f080c0> (a java.lang.ref.ReferenceQueue$Lock)
  |         at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(Unknown Source)
  |         at java.lang.Thread.run(Unknown Source)
  | 
  | "Low Memory Detector" daemon prio=6 tid=0x0aae1c00 nid=0x1200 runnable [0x00000000..0x00000000]
  |    java.lang.Thread.State: RUNNABLE
  | 
  | "CompilerThread0" daemon prio=10 tid=0x0aae0400 nid=0x11fc waiting on condition [0x00000000..0x0afdf81c]
  |    java.lang.Thread.State: RUNNABLE
  | 
  | "JDWP Event Helper Thread" daemon prio=6 tid=0x0aad5400 nid=0xf84 runnable [0x00000000..0x00000000]
  |    java.lang.Thread.State: RUNNABLE
  | 
  | "Attach Listener" daemon prio=10 tid=0x0aac7000 nid=0x1708 runnable [0x00000000..0x00000000]
  |    java.lang.Thread.State: RUNNABLE
  | 
  | "Signal Dispatcher" daemon prio=10 tid=0x0aac6000 nid=0x5f4 waiting on condition [0x00000000..0x00000000]
  |    java.lang.Thread.State: RUNNABLE
  | 
  | "Finalizer" daemon prio=8 tid=0x0aab7800 nid=0xeb4 in Object.wait() [0x0ac2f000..0x0ac2fa94]
  |    java.lang.Thread.State: WAITING (on object monitor)
  |         at java.lang.Object.wait(Native Method)
  |         - waiting on <0x02ea42e0> (a java.lang.ref.ReferenceQueue$Lock)
  |         at java.lang.ref.ReferenceQueue.remove(Unknown Source)
  |         - locked <0x02ea42e0> (a java.lang.ref.ReferenceQueue$Lock)
  |         at java.lang.ref.ReferenceQueue.remove(Unknown Source)
  |         at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
  | 
  | "Reference Handler" daemon prio=10 tid=0x0aab3400 nid=0xac8 in Object.wait() [0x0abdf000..0x0abdfb14]
  |    java.lang.Thread.State: WAITING (on object monitor)
  |         at java.lang.Object.wait(Native Method)
  |         - waiting on <0x02ea4300> (a java.lang.ref.Reference$Lock)
  |         at java.lang.Object.wait(Object.java:485)
  |         at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
  |         - locked <0x02ea4300> (a java.lang.ref.Reference$Lock)
  | 
  | "main" prio=6 tid=0x002a7000 nid=0x3b8 runnable [0x0090f000..0x0090fe50]
  |    java.lang.Thread.State: RUNNABLE
  |         at javax.naming.InitialContext.close(Unknown Source)
  |         at org.jboss.example.jms.longlivequeue.QueueConsumerExample.example(QueueConsumerExample.java:85)
  |         at org.jboss.example.jms.common.ExampleSupport.run(ExampleSupport.java:147)
  |         at org.jboss.example.jms.longlivequeue.QueueConsumerExample.main(QueueConsumerExample.java:121)
  | 
  | "VM Thread" prio=10 tid=0x0aaaec00 nid=0x90c runnable
  | 
  | "VM Periodic Task Thread" prio=10 tid=0x0aaec400 nid=0xd30 waiting on condition
  | 
  | JNI global references: 2974
  | 
  | Heap
  |  def new generation   total 960K, used 186K [0x029a0000, 0x02aa0000, 0x02e80000)
  |   eden space 896K,  18% used [0x029a0000, 0x029c9570, 0x02a80000)
  |   from space 64K,  33% used [0x02a80000, 0x02a85668, 0x02a90000)
  |   to   space 64K,   0% used [0x02a90000, 0x02a90000, 0x02aa0000)
  |  tenured generation   total 4096K, used 2034K [0x02e80000, 0x03280000, 0x069a0000)
  |    the space 4096K,  49% used [0x02e80000, 0x0307cb70, 0x0307cc00, 0x03280000)
  |  compacting perm gen  total 12288K, used 9794K [0x069a0000, 0x075a0000, 0x0a9a0000)
  |    the space 12288K,  79% used [0x069a0000, 0x073309b0, 0x07330a00, 0x075a0000)
  | No shared spaces configured.
  | 

Any idea how to procees?
How can I enable the jboss tracing, would this help?

I have launched a debugger, but do not know what to do, because there are two threads just blocked on socket read..

org.jboss.remoting.transport.socket.ServerThread.readVersion(ServerThread.java:824)
and
org.jboss.remoting.transport.bisocket.BisocketServerInvoker$ControlConnectionThread.run(B
isocketServerInvoker.java:741)


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4125221#4125221

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4125221



More information about the jboss-user mailing list