You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "james strachan (JIRA)" <ji...@activemq.org> on 2006/03/17 14:29:26 UTC

[jira] Resolved: (AMQ-623) Cleanup Failed When ActiveMQConnection.close() is called

     [ http://jira.activemq.org/jira//browse/AMQ-623?page=all ]
     
james strachan resolved AMQ-623:
--------------------------------

     Resolution: Fixed
    Fix Version: 4.0 M5

I've just patched SVN HEAD to fix this issue AFAIK - any chance you could try out tomorrows SNAPSHOT build (or the latest in subversion) to see if this fixes your issue please?

If not let us know and we'll reopen this issue

> Cleanup Failed When ActiveMQConnection.close() is called
> --------------------------------------------------------
>
>          Key: AMQ-623
>          URL: http://jira.activemq.org/jira//browse/AMQ-623
>      Project: ActiveMQ
>         Type: Bug

>   Components: Broker
>     Versions: 4.0 M4
>     Reporter: Cloudor Pu
>     Priority: Minor
>      Fix For: 4.0 M5

>
>
> I got exceptions from time to time when I close connections,
> ---------------------------------------------------------------------------------------------------------------------------------------------
> 2006-3-9 11:42:11 org.apache.activemq.ActiveMQConnection transportFailed
> Warn: Cleanup failed
> javax.jms.JMSException: Cannot write to the stream any more it has already been closed
> 	at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:57)
> 	at org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1043)
> 	at org.apache.activemq.ActiveMQConnection.cleanup(ActiveMQConnection.java:1191)
> 	at org.apache.activemq.ActiveMQConnection.transportFailed(ActiveMQConnection.java:1585)
> 	at org.apache.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1338)
> 	at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:102)
> 	at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:102)
> 	at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:102)
> 	at org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:90)
> 	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:149)
> 	at java.lang.Thread.run(Unknown Source)
> Caused by: java.io.EOFException: Cannot write to the stream any more it has already been closed
> 	at org.apache.activemq.transport.tcp.TcpBufferedOutputStream.checkClosed(TcpBufferedOutputStream.java:131)
> 	at org.apache.activemq.transport.tcp.TcpBufferedOutputStream.write(TcpBufferedOutputStream.java:69)
> 	at java.io.DataOutputStream.writeInt(Unknown Source)
> 	at org.apache.activemq.openwire.OpenWireFormat.marshal(OpenWireFormat.java:169)
> 	at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:117)
> 	at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:90)
> 	at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:65)
> 	at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:44)
> 	at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:54)
> 	at org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1041)
> 	... 9 more
> ---------------------------------------------------------------------------------------------------------------------------------------------
> It seems that things happened in this order:
> 1. On client, in user thread, connection.close() is called.
> 2. On server, shutdown info is received  and socket is closed.
> 3. On client, in consumer thread, TcpTransport got an EOFException because socket is closed before TcpTransport.closed is set to true.
> 4. On client, ActiveMQConnection.cleanup() is called becauseof EOFException happend in 3. But isConnectionInfoSentToBroker is still true, another Exception is raised when sending packet to broker through the already closed socket.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.activemq.org/jira//secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira