On 27/11/06, Gordon Sim <[EMAIL PROTECTED]> wrote:
Rajith Attapattu wrote:
> Here is details from the server side logs
>
> 2006-11-24 13:26:24,404 INFO  [pool-112-thread-3]
> handler.ConnectionCloseMethodHandler
> (ConnectionCloseMethodHandler.java:55) - ConnectionClose received with
> reply code/reply text 200/JMS client is closing the connection. for
[...]
> Here is an excerpt from the Thread Dump
> I have highlighted the line which says blocking for frame, further down
> the stack u can see it's triggered by the AMQSession.close()
>
> [java] "main" prio=1 tid=0x098b3808 nid=0x185b in Object.wait()
> [0xbfb68000..0xbfb68df8]
>      [java]     at java.lang.Object.wait(Native Method)
>      [java]     - waiting on <0x88bebfd0> (a java.lang.Object)
>      [java]     at java.lang.Object.wait(Object.java:474)
>      [java]     at
> 
org.apache.qpid.client.protocol.BlockingMethodFrameListener.blockForFrame(BlockingMethodFrameListener.java
> :97)
>      [java]     - locked <0x88bebfd0> (a java.lang.Object)
>      [java]     at
> 
org.apache.qpid.client.protocol.AMQProtocolHandler.writeCommandFrameAndWaitForReply(AMQProtocolHandler.java:421)
>      [java]     at
> 
org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:439)
>      [java]     at
> org.apache.qpid.client.AMQSession.close(AMQSession.java:475)
>      [java]     - locked <0x890b7358> (a java.lang.Object)
>      [java]     at
> 
org.apache.qpid.client.AMQQueueSessionAdaptor.close(AMQQueueSessionAdaptor.java:122)
>      [java]     at


The main thread is blocked waiting for a response to the channel close
issued. That will never come as the server seems to already have closed
the connection.

I suspect the root of the problem is that AMQSession.close() doesn't
check whether it is already closed before going through the shutdown
routine. The AMQQueueSessionAdaptor above is calling close on the
session as part of cleanup, but the connection (and hence all the
sessions) have already been closed by an earlier operation.


I've just commited a fix for this.

--
Martin Ritchie

Reply via email to