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

Broker allows the creation of duplicate queue entries on a single queue which then fail on-dequeue.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • 0.10, 0.12, 0.14, 0.16, 0.18, 0.20, 0.21
    • None
    • Broker-J
    • None

    Description

      Using the copyMessage function, it is possible to cause a single message to appear twice on a single queue. When a consumer consumes the duplicate and tries to acknowledge the duplicate, the Broker produces the following error. It is also possible to create the same situation using certain dead-letter arrangements.

      org.apache.qpid.AMQStoreException: Unable to find message with id 1 on queue dest with id 1ad9e427-b87e-3702-8ea3-0816a10d60ba [error code 541: internal error] at org.apache.qpid.server.store.berkeleydb.AbstractBDBMessageStore.dequeueMessage(AbstractBDBMessageStore.java:948) at org.apache.qpid.server.store.berkeleydb.AbstractBDBMessageStore$BDBTransaction.dequeueMessage(AbstractBDBMessageStore.java:1643) at org.apache.qpid.server.txn.LocalTransaction.dequeue(LocalTransaction.java:142) at org.apache.qpid.server.AMQChannel.acknowledgeMessage(AMQChannel.java:847) at org.apache.qpid.server.handler.BasicAckMethodHandler.methodReceived(BasicAckMethodHandler.java:65) at org.apache.qpid.server.handler.ServerMethodDispatcherImpl.dispatchBasicAck(ServerMethodDispatcherImpl.java:133) at org.apache.qpid.framing.amqp_0_9.BasicAckBodyImpl.execute(BasicAckBodyImpl.java:123) at org.apache.qpid.server.state.AMQStateManager.methodReceived(AMQStateManager.java:120) at org.apache.qpid.server.protocol.AMQProtocolEngine.methodFrameReceived(AMQProtocolEngine.java:454) at org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:97) at org.apache.qpid.server.protocol.AMQProtocolEngine.frameReceived(AMQProtocolEngine.java:338) at org.apache.qpid.server.protocol.AMQProtocolEngine.dataBlockReceived(AMQProtocolEngine.java:283) at org.apache.qpid.server.protocol.AMQProtocolEngine.received(AMQProtocolEngine.java:242) at org.apache.qpid.server.protocol.AMQProtocolEngine.received(AMQProtocolEngine.java:81) at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:118) at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:37) at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161) at java.lang.Thread.run(Thread.java:662)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              kwall Keith Wall
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: