Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-5552

Client abrupt stop causes QPID Server crash

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.24
    • Fix Version/s: 0.27
    • Component/s: Broker-J
    • Labels:
      None
    • Environment:

      RHEL

      Description

      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)
      ########################################################################
      #

      1. Unhandled Exception org.apache.qpid.transport.SenderClosedException: sender is closed in Thread IoReceiver - /10.109.60.180:53546
        #
      2. 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.

        Attachments

          Activity

            People

            • Assignee:
              rgodfrey Rob Godfrey
              Reporter:
              kappcr Chris Kapp
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: