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

[Broker-J] NPE when detaching endpoint

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • qpid-java-broker-9.2.0
    • qpid-java-broker-9.2.1
    • Broker-J
    • None

    Description

      Following stacktrace is seen in broker log:

      2024-01-29T07:36:39,280Z WARN  [IO-/XXX.XX.XXX.XX:XXXXX] (o.a.q.s.p.v.SendingLinkEndpoint) - Unexpected error on detaching endpoint 3989c1e7-bbc0-45b7-bb18-ac8201212deb-XXX: Error{condition=unknown-id,description=Unknown transaction-id '0'}
      2024-01-29T07:36:39,281Z WARN  [IO-/XXX.XX.XXX.XX:XXXXX] (o.a.q.s.p.v.f.FrameHandler) - Unexpected exception handling frame
      java.lang.NullPointerException: null
          at java.base/java.util.Objects.requireNonNull(Objects.java:221)
          at java.base/java.util.Arrays$ArrayList.<init>(Arrays.java:4323)
          at java.base/java.util.Arrays.asList(Arrays.java:4310)
          at org.apache.qpid.server.protocol.v1_0.TxnCoordinatorReceivingLinkEndpoint.receiveDelivery(TxnCoordinatorReceivingLinkEndpoint.java:124)
          at org.apache.qpid.server.protocol.v1_0.AbstractReceivingLinkEndpoint.receiveTransfer(AbstractReceivingLinkEndpoint.java:165)
          at org.apache.qpid.server.protocol.v1_0.Session_1_0.receiveTransfer(Session_1_0.java:629)
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.receiveTransfer(AMQPConnection_1_0Impl.java:796)
          at org.apache.qpid.server.protocol.v1_0.type.transport.Transfer.invoke(Transfer.java:295)
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.received(AMQPConnection_1_0Impl.java:519)
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.lambda$receive$0(AMQPConnection_1_0Impl.java:471)
          at java.base/java.security.AccessController.doPrivileged(Native Method)
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.receive(AMQPConnection_1_0Impl.java:465)
          at org.apache.qpid.server.protocol.v1_0.framing.FrameHandler.parse(FrameHandler.java:224)
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.onReceive(AMQPConnection_1_0Impl.java:1309)
          at org.apache.qpid.server.transport.AbstractAMQPConnection.lambda$received$4(AbstractAMQPConnection.java:565)
          at java.base/java.security.AccessController.doPrivileged(Native Method)
          at org.apache.qpid.server.transport.AbstractAMQPConnection.received(AbstractAMQPConnection.java:560)
          at org.apache.qpid.server.transport.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:138)
          at org.apache.qpid.server.transport.NonBlockingConnection.processAmqpData(NonBlockingConnection.java:606)
          at org.apache.qpid.server.transport.NonBlockingConnectionPlainDelegate.processData(NonBlockingConnectionPlainDelegate.java:58)
          at org.apache.qpid.server.transport.NonBlockingConnection.doRead(NonBlockingConnection.java:491)
          at org.apache.qpid.server.transport.NonBlockingConnection.doWork(NonBlockingConnection.java:265)
          at org.apache.qpid.server.transport.NetworkConnectionScheduler.processConnection(NetworkConnectionScheduler.java:134)
          at org.apache.qpid.server.transport.SelectorThread$ConnectionProcessor.processConnection(SelectorThread.java:535)
          at org.apache.qpid.server.transport.SelectorThread$SelectionTask.performSelect(SelectorThread.java:346)
          at org.apache.qpid.server.transport.SelectorThread$SelectionTask.run(SelectorThread.java:96)
          at org.apache.qpid.server.transport.SelectorThread.run(SelectorThread.java:493)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
          at org.apache.qpid.server.bytebuffer.QpidByteBufferFactory.lambda$createQpidByteBufferTrackingThreadFactory$0(QpidByteBufferFactory.java:464)
          at java.base/java.lang.Thread.run(Thread.java:829)
      2024-01-29T07:36:39,283Z WARN  [IO-/XXX.XX.XXX.XX:XXXXX] (o.a.q.s.p.v.f.FrameHandler) - Unexpected exception handling frame
      org.apache.qpid.server.util.ConnectionScopedRuntimeException: Unexpected state, client has sent frame in an illegal order.  Required state: OPENED, actual state: CLOSE_SENT
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.assertState(AMQPConnection_1_0Impl.java:1765)
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.receiveDetach(AMQPConnection_1_0Impl.java:1072)
          at org.apache.qpid.server.protocol.v1_0.type.transport.Detach.invoke(Detach.java:116)
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.received(AMQPConnection_1_0Impl.java:519)
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.lambda$receive$0(AMQPConnection_1_0Impl.java:471)
          at java.base/java.security.AccessController.doPrivileged(Native Method)
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.receive(AMQPConnection_1_0Impl.java:465)
          at org.apache.qpid.server.protocol.v1_0.framing.FrameHandler.parse(FrameHandler.java:224)
          at org.apache.qpid.server.protocol.v1_0.AMQPConnection_1_0Impl.onReceive(AMQPConnection_1_0Impl.java:1309)
          at org.apache.qpid.server.transport.AbstractAMQPConnection.lambda$received$4(AbstractAMQPConnection.java:565)
          at java.base/java.security.AccessController.doPrivileged(Native Method)
          at org.apache.qpid.server.transport.AbstractAMQPConnection.received(AbstractAMQPConnection.java:560)
          at org.apache.qpid.server.transport.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:138)
          at org.apache.qpid.server.transport.NonBlockingConnection.processAmqpData(NonBlockingConnection.java:606)
          at org.apache.qpid.server.transport.NonBlockingConnectionPlainDelegate.processData(NonBlockingConnectionPlainDelegate.java:58)
          at org.apache.qpid.server.transport.NonBlockingConnection.doRead(NonBlockingConnection.java:491)
          at org.apache.qpid.server.transport.NonBlockingConnection.doWork(NonBlockingConnection.java:265)
          at org.apache.qpid.server.transport.NetworkConnectionScheduler.processConnection(NetworkConnectionScheduler.java:134)
          at org.apache.qpid.server.transport.SelectorThread$ConnectionProcessor.processConnection(SelectorThread.java:535)
          at org.apache.qpid.server.transport.SelectorThread$SelectionTask.performSelect(SelectorThread.java:346)
          at org.apache.qpid.server.transport.SelectorThread$SelectionTask.run(SelectorThread.java:96)
          at org.apache.qpid.server.transport.SelectorThread.run(SelectorThread.java:493)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
          at org.apache.qpid.server.bytebuffer.QpidByteBufferFactory.lambda$createQpidByteBufferTrackingThreadFactory$0(QpidByteBufferFactory.java:464)
          at java.base/java.lang.Thread.run(Thread.java:829) 

      It seems, that getSource().getOutcomes() returns null leading to an NPE when callings Arrays.asList().

      Attachments

        Activity

          People

            Unassigned Unassigned
            daniel.kirilyuk Daniil Kirilyuk
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: