Bugs item #879821, was opened at 2004-01-19 12:52
Message generated for change (Comment added) made by ejort
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=879821&group_id=22866

Category: JBossMQ
Group: v3.2
>Status: Closed
>Resolution: Out of Date
Priority: 5
Submitted By: E.Sriram (esriram)
>Assigned to: Adrian Brock (ejort)
Summary: SpyMessageConsumer.close() never returns

Initial Comment:
The close() method of SpyMessageConsumer never returns.

Thread dump shows that the close() method got stuck on
a Thread.join().

Thread dump attached.

Close Thread:
"Thread-0" prio=1 tid=0x0a3c3e68 nid=0x8bc in
Object.wait() [41bcc000..41bcd298]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x4971d260> (a java.lang.Thread)
        at java.lang.Thread.join(Thread.java:1001)
        - locked <0x4971d260> (a java.lang.Thread)
        at java.lang.Thread.join(Thread.java:1054)
        at
org.jboss.mq.SpyMessageConsumer.close(SpyMessageConsumer.java:409)
        at
com.adventnet.tree.notification.TreeViewNotificationHandler.cleanup(TreeViewNotificationHandler.java:81)
...
...
...

The close() method is waiting for a MessageListener
thread which is on an Object.wait().

MessageListenerThread:

"MessageListenerThread - TreeNotificationTopic" prio=1
tid=0x08711490 nid=0x8bc in Object.wait()
[607b4000..607b5098]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x4971d2a8> (a java.util.LinkedList)
        at java.lang.Object.wait(Object.java:429)
        at
org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:495)
        - locked <0x4971d2a8> (a java.util.LinkedList)
        at java.lang.Thread.run(Thread.java:534)


The root cause is a threading issue between the threads
mentioned above.  


The fix would be to move the listenerThread.join()
inside a synchronized block on messages.

--E.Sriram

----------------------------------------------------------------------

>Comment By: Adrian Brock (ejort)
Date: 2004-02-03 23:07

Message:
Logged In: YES 
user_id=9459

Please try your test again with a more up-to-date version of
jboss.
>From the stacktrace it looks like you are using 3.2.1
There have a number of modifications to the synchronization
since then,
including some fixes to the close processing.

If you still have the problem in 3.2.3 I will look at it.
Even better, try it with 3.2.4RC1 with TRACE logging enabled.
I have improved the TRACE logging in the client code for 3.2.4
so it should be easier to see what is happening.

The only thing that springs to mind is that close() could do a
messages.notifyAll() instead of messages.notify(), 
but I don't see why there would more than one thread waiting on
messages if you have a MessageListener
consuming messages.
I will make this modification anyway.

Regards,
Adrian

----------------------------------------------------------------------

Comment By: E.Sriram (esriram)
Date: 2004-01-19 13:34

Message:
Logged In: YES 
user_id=694460

The fix I suggested (i.e) moving the Thread.join inside a
synchronized block on messages will not work.

Some other fix should be identified.

--E.Sriram

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=879821&group_id=22866


-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to