[ 
https://issues.apache.org/jira/browse/QPID-5552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13901761#comment-13901761
 ] 

Rob Godfrey commented on QPID-5552:
-----------------------------------

Sorry about that - we'll fix that for the next release.

The exception is occurring because the broker is attempting to write to the 
connection, when the connection is already closed.  It obviously should deal 
with this as a simple connection failure rather than the broker terminating.

For the moment you can invoke the broker setting the java system property 
"qpid.broker.exceptionHandler.continue" to  "true" and this will mean the 
broker will continue on essentially ignoring the exception (which in this case 
it is perfectly safe to do).

If you are using the qpid-server script wrapper to start the broker then you 
can set system properties by setting the value of the QPID_OPTS environment 
variable,

e.g.

export QPID_OPTS="-Dqpid.broker.exceptionHandler.continue=true"
$QPID_HOME/qpid-server



> Client abrupt stop causes QPID Server crash
> -------------------------------------------
>
>                 Key: QPID-5552
>                 URL: https://issues.apache.org/jira/browse/QPID-5552
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.24
>         Environment: RHEL
>            Reporter: Chris Kapp
>              Labels: epic, fail
>
> Re-create:
> With the Proton client, create a moderate load of reads and writes. Stop the 
> client abruptly without any cleanup.
> Result:
> QPID Server shuts down. The frequency of re-creating seems to be about 80%.
> Expected Result:
> No messaging client should be able to cause the Message Broker to crash.
> The Server output is:
> java.net.SocketException: Broken pipe
>         at java.net.SocketOutputStream.socketWrite0(Native Method)
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at 
> org.apache.qpid.transport.network.io.IoSender.run(IoSender.java:313)
>         at java.lang.Thread.run(Unknown Source)
> 2014-02-14 09:45:05,469 ERROR [IoSender - /10.109.60.180:52514] (io.IoSender) 
> - error in write thread
> java.net.SocketException: Broken pipe
>         at java.net.SocketOutputStream.socketWrite0(Native Method)
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at 
> org.apache.qpid.transport.network.io.IoSender.run(IoSender.java:313)
>         at java.lang.Thread.run(Unknown Source)
> 2014-02-14 09:50:08,657 ERROR [IoSender - /10.109.60.180:53546] (io.IoSender) 
> - error in write thread
> java.net.SocketException: Connection reset
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at 
> org.apache.qpid.transport.network.io.IoSender.run(IoSender.java:313)
>         at java.lang.Thread.run(Unknown Source)
> 2014-02-14 09:50:08,658 ERROR [IoReceiver - /10.109.60.180:53546] 
> (thread.LoggingUncaughtExceptionHandler) - Uncaught exception in thread 
> "IoReceiver - /10.109.60.180:53546"
> org.apache.qpid.transport.SenderClosedException: sender is closed
>         at 
> org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:114)
>         at 
> org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:40)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.send(ProtocolEngine_1_0_0_SASL.java:424)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.send(ProtocolEngine_1_0_0_SASL.java:385)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.send(ConnectionEndpoint.java:598)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.send(ConnectionEndpoint.java:561)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.send(SessionEndpoint.java:254)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.sendDetach(SessionEndpoint.java:725)
>         at 
> org.apache.qpid.amqp_1_0.transport.LinkEndpoint.detach(LinkEndpoint.java:405)
>         at 
> org.apache.qpid.amqp_1_0.transport.LinkEndpoint.detach(LinkEndpoint.java:364)
>         at 
> org.apache.qpid.server.protocol.v1_0.Subscription_1_0.close(Subscription_1_0.java:188)
>         at 
> org.apache.qpid.server.queue.SimpleAMQQueue.unregisterSubscription(SimpleAMQQueue.java:487)
>         at 
> org.apache.qpid.server.protocol.v1_0.SendingLink_1_0.remoteDetached(SendingLink_1_0.java:394)
>         at 
> org.apache.qpid.amqp_1_0.transport.LinkEndpoint.remoteDetached(LinkEndpoint.java:171)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.detach(SessionEndpoint.java:290)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.detachLinks(SessionEndpoint.java:192)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.end(SessionEndpoint.java:165)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.end(SessionEndpoint.java:152)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.inputClosed(ConnectionEndpoint.java:387)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.closed(ProtocolEngine_1_0_0_SASL.java:364)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine.closed(MultiVersionProtocolEngine.java:115)
>         at 
> org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:222)
>         at java.lang.Thread.run(Unknown Source)
> Caused by: java.net.SocketException: Connection reset
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at 
> org.apache.qpid.transport.network.io.IoSender.run(IoSender.java:313)
>         ... 1 more
> 2014-02-14 09:50:08,660 ERROR [IoSender - /10.109.60.180:53545] (io.IoSender) 
> - error in write thread
> java.net.SocketException: Connection reset
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at 
> org.apache.qpid.transport.network.io.IoSender.run(IoSender.java:313)
>         at java.lang.Thread.run(Unknown Source)
> ########################################################################
> #
> # Unhandled Exception org.apache.qpid.transport.SenderClosedException: sender 
> is closed in Thread IoReceiver - /10.109.60.180:53546
> #
> # Exiting
> #
> ########################################################################
> org.apache.qpid.transport.SenderClosedException: sender is closed
>         at 
> org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:114)
>         at 
> org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:40)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.send(ProtocolEngine_1_0_0_SASL.java:424)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.send(ProtocolEngine_1_0_0_SASL.java:385)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.send(ConnectionEndpoint.java:598)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.send(ConnectionEndpoint.java:561)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.send(SessionEndpoint.java:254)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.sendDetach(SessionEndpoint.java:725)
>         at 
> org.apache.qpid.amqp_1_0.transport.LinkEndpoint.detach(LinkEndpoint.java:405)
>         at 
> org.apache.qpid.amqp_1_0.transport.LinkEndpoint.detach(LinkEndpoint.java:364)
>         at 
> org.apache.qpid.server.protocol.v1_0.Subscription_1_0.close(Subscription_1_0.java:188)
>         at 
> org.apache.qpid.server.queue.SimpleAMQQueue.unregisterSubscription(SimpleAMQQueue.java:487)
>         at 
> org.apache.qpid.server.protocol.v1_0.SendingLink_1_0.remoteDetached(SendingLink_1_0.java:394)
>         at 
> org.apache.qpid.amqp_1_0.transport.LinkEndpoint.remoteDetached(LinkEndpoint.java:171)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.detach(SessionEndpoint.java:290)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.detachLinks(SessionEndpoint.java:192)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.end(SessionEndpoint.java:165)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.end(SessionEndpoint.java:152)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.inputClosed(ConnectionEndpoint.java:387)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.closed(ProtocolEngine_1_0_0_SASL.java:364)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine.closed(MultiVersionProtocolEngine.java:115)
>         at 
> org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:222)
>         at java.lang.Thread.run(Unknown Source)
> Caused by: java.net.SocketException: Connection reset
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at 
> org.apache.qpid.transport.network.io.IoSender.run(IoSender.java:313)
>         ... 1 more
> 2014-02-14 09:50:08,663 ERROR [IoReceiver - /10.109.60.180:53546] 
> (server.Main) - Uncaught exception, shutting down.
> org.apache.qpid.transport.SenderClosedException: sender is closed
>         at 
> org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:114)
>         at 
> org.apache.qpid.transport.network.io.IoSender.send(IoSender.java:40)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.send(ProtocolEngine_1_0_0_SASL.java:424)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.send(ProtocolEngine_1_0_0_SASL.java:385)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.send(ConnectionEndpoint.java:598)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.send(ConnectionEndpoint.java:561)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.send(SessionEndpoint.java:254)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.sendDetach(SessionEndpoint.java:725)
>         at 
> org.apache.qpid.amqp_1_0.transport.LinkEndpoint.detach(LinkEndpoint.java:405)
>         at 
> org.apache.qpid.amqp_1_0.transport.LinkEndpoint.detach(LinkEndpoint.java:364)
>         at 
> org.apache.qpid.server.protocol.v1_0.Subscription_1_0.close(Subscription_1_0.java:188)
>         at 
> org.apache.qpid.server.queue.SimpleAMQQueue.unregisterSubscription(SimpleAMQQueue.java:487)
>         at 
> org.apache.qpid.server.protocol.v1_0.SendingLink_1_0.remoteDetached(SendingLink_1_0.java:394)
>         at 
> org.apache.qpid.amqp_1_0.transport.LinkEndpoint.remoteDetached(LinkEndpoint.java:171)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.detach(SessionEndpoint.java:290)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.detachLinks(SessionEndpoint.java:192)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.end(SessionEndpoint.java:165)
>         at 
> org.apache.qpid.amqp_1_0.transport.SessionEndpoint.end(SessionEndpoint.java:152)
>         at 
> org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.inputClosed(ConnectionEndpoint.java:387)
>         at 
> org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.closed(ProtocolEngine_1_0_0_SASL.java:364)
>         at 
> org.apache.qpid.server.protocol.MultiVersionProtocolEngine.closed(MultiVersionProtocolEngine.java:115)
>         at 
> org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:222)
>         at java.lang.Thread.run(Unknown Source)
> Caused by: java.net.SocketException: Connection reset
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at 
> org.apache.qpid.transport.network.io.IoSender.run(IoSender.java:313)
>         ... 1 more
> The client message is:
> javax.jms.JMSException: java.net.ConnectException: Connection refused: connect
> Message length: 113
>       at 
> org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl.connect(ConnectionImpl.java:112)
>       at 
> org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl.start(ConnectionImpl.java:266)
>       at 
> org.ldschurch.soa.messaging.proton.ProtonPocMessageContext.<init>(ProtonPocMessageContext.java:49)
>       at org.ldschurch.soa.messaging.PocMessaging.main(PocMessaging.java:49)
> Caused by: org.apache.qpid.amqp_1_0.client.ConnectionException: 
> java.net.ConnectException: Connection refused: connect
>       at 
> org.apache.qpid.amqp_1_0.client.Connection.<init>(Connection.java:271)
>       at 
> org.apache.qpid.amqp_1_0.client.Connection.<init>(Connection.java:135)
>       at 
> org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl.connect(ConnectionImpl.java:105)
>       ... 3 more
> Caused by: java.net.ConnectException: Connection refused: connect
>       at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
>       at 
> java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
>       at 
> java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
>       at 
> java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
>       at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
>       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
>       at java.net.Socket.connect(Socket.java:579)
>       at java.net.Socket.connect(Socket.java:528)
>       at java.net.Socket.<init>(Socket.java:425)
>       at java.net.Socket.<init>(Socket.java:208)
>       at 
> org.apache.qpid.amqp_1_0.client.Connection.<init>(Connection.java:159)
>       ... 5 more
> java.lang.NullPointerException
>       at 
> org.ldschurch.soa.messaging.proton.ProtonPocMessageContext.close(ProtonPocMessageContext.java:77)
>       at 
> org.ldschurch.soa.messaging.PocMessaging.testMessageThroughput(PocMessaging.java:153)
>       at org.ldschurch.soa.messaging.PocMessaging.main(PocMessaging.java:49)
> Messaging tests complete.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to