Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.6
-
None
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)