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

[Java 0-8 Client] Failover during transaction may cause erroneous attempts to acknowledge in new connection

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.6
    • None
    • JMS AMQP 0-x

    Description

      It was observed that a failover (in the case caused by a timeout) caused the client to attempt to ack messages on the new connection that has been received on the old connection - this caused a broker error:

      2010-06-25 14:04:28,766 ERROR [pool-2-thread-14] protocol.AMQMinaProtocolSession (AMQMinaProtocolSession.java:409) - Unexpected exception while processing frame. Closing connection.
      org.apache.qpid.AMQException: Ack with delivery tag 22 not known for channel
      at org.apache.qpid.server.txn.LocalTransactionalContext.checkAck(LocalTransactionalContext.java:172)
      at org.apache.qpid.server.txn.LocalTransactionalContext.acknowledgeMessage(LocalTransactionalContext.java:182)
      at org.apache.qpid.server.ack.UnacknowledgedMessageMapImpl.acknowledgeMessage(UnacknowledgedMessageMapImpl.java:143)
      at org.apache.qpid.server.AMQChannel.acknowledgeMessage(AMQChannel.java:772)
      at org.apache.qpid.server.handler.BasicAckMethodHandler.methodReceived(BasicAckMethodHandler.java:65)
      at org.apache.qpid.server.handler.ServerMethodDispatcherImpl.dispatchBasicAck(ServerMethodDispatcherImpl.java:125)
      at org.apache.qpid.framing.amqp_0_9.BasicAckBodyImpl.execute(BasicAckBodyImpl.java:126)
      at org.apache.qpid.server.state.AMQStateManager.methodReceived(AMQStateManager.java:204)

      Attachments

        Activity

          People

            Unassigned Unassigned
            rgodfrey Robert Godfrey
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: