Uploaded image for project: 'JBoss Messaging'
  1. JBoss Messaging
  2. JBMESSAGING-1558

Order of Delivery is not being respected on backup node after ServerConsumerImpl.close is called with pending deliveries

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 2.0.0 Beta1
    • Component/s: None
    • Labels:
      None

      Description

      The order of queues is not being respected between backup and livenode after ServerConsumerImpl.close is called.

      ServerConsumerImpl::close will call QueueImpl::cancel for every delivering reference, and the order of the Queues will be different between backup and live node after that operation.

      Next time deliveries are replicated they will be in different orders between the two nodes and several issues will happen after that.

      You will see exceptions like:

      throw new IllegalStateException("Cannot find ref " + messageID +
      " in queue " +
      messageQueue.getName());

      As this opertaion will fail:

      public void deliverReplicated(final long messageID) throws Exception
      {
      MessageReference ref = messageQueue.removeFirstReference(messageID);

        Gliffy Diagrams

          Attachments

          1. diagram1.png
            diagram1.png
            93 kB
          2. diagram2.png
            diagram2.png
            120 kB
          3. diagram3.png
            diagram3.png
            151 kB
          4. diff-6724.patch
            67 kB

            Issue Links

              Activity

                People

                • Assignee:
                  clebert.suconic Clebert Suconic
                  Reporter:
                  clebert.suconic Clebert Suconic
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  0 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: