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

[Broker-J] The binding is broken when queue and exchange have the same name

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • qpid-java-broker-8.0.6
    • None
    • Broker-J
    • None

    Description

      There is a three-node cluster qpid broker-j 8.0.6.

      Binding is broken after switching the master node if the exchange and the queue have the same name.

      Steps to reproduce:

      1. Create an exchange and queue with the same name (e.g. Ae8M6kKM).
      2. Create a binding for the exchange Ae8M6kKM and queue Ae8M6kKM.
      3. Try to send and receive a message. All works.
      4. Move master node to another server.
      5. Try to send and receive a message. The message is dropped.
      6. Try to delete the binding. The web interface returns a 500 error "Please correct the problem and retry your operation." and delete the binding.
      7. Create new binding for the exchange Ae8M6kKM and queue Ae8M6kKM.
      8. Try to send and receive a message. All works.
      9. Move master node to another server.
      10. The issue reproduces again.

       

      Step 6 stack trace:

      2022-01-13T14:39:55,179Z DEBUG [qtp1018056877-65] (o.a.q.s.m.AbstractConfiguredObject) - authorise returned ALLOWED
      2022-01-13T14:39:55,180Z DEBUG [VirtualHostNode-default2-Config] (o.a.q.s.c.u.TaskExecutorImpl) - Performing Task['unbind' on 'TopicExchangeImplWithAccessChecking[Ae8M6kKM]' with arguments 'destination=Ae8M6kKM,bindingKey=#']
      2022-01-13T14:39:55,181Z DEBUG [VirtualHostNode-default2-Config] (o.a.q.s.c.u.TaskExecutorImpl) - Task['unbind' on 'TopicExchangeImplWithAccessChecking[Ae8M6kKM]' with arguments 'destination=Ae8M6kKM,bindingKey=#'] performed successfully with result: null
      2022-01-13T14:39:55,185Z WARN  [qtp1018056877-65] (o.a.q.s.m.p.ManagementException) - Unexpected Exception
      java.lang.NullPointerException: null
      	at org.apache.qpid.server.queue.AbstractQueue.linkRemoved(AbstractQueue.java:3836)
      	at org.apache.qpid.server.exchange.AbstractExchange.unbind(AbstractExchange.java:827)
      	at org.apache.qpid.server.exchange.TopicExchangeImplWithAccessChecking.access$301(TopicExchangeImplWithAccessChecking.java:33)
      	at org.apache.qpid.server.exchange.TopicExchangeImplWithAccessChecking$4.execute(TopicExchangeImplWithAccessChecking.java:160)
      	at org.apache.qpid.server.exchange.TopicExchangeImplWithAccessChecking$4.execute(TopicExchangeImplWithAccessChecking.java:155)
      	at org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:647)
      	at org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:640)
      	at org.apache.qpid.server.configuration.updater.TaskExecutorImpl$TaskLoggingWrapper.execute(TaskExecutorImpl.java:248)
      	at org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper$1.run(TaskExecutorImpl.java:320)
      	at java.base/java.security.AccessController.doPrivileged(Native Method)
      	at java.base/javax.security.auth.Subject.doAs(Subject.java:361)
      	at org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper.call(TaskExecutorImpl.java:313)
      	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)
      	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)
      	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)
      	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$null$0(QpidByteBufferFactory.java:464)
      	at java.base/java.lang.Thread.run(Thread.java:829)
      2022-01-13T14:39:55,186Z DEBUG [qtp1018056877-65] (o.a.q.s.m.p.f.LoggingFilter) - RESPONSE method='POST' url='http://testqpid:8443//api/latest/exchange/default2/default/Ae8M6kKM/unbind' status='500’

       

      Attachments

        1. 500_error.png
          36 kB
          Andrey

        Activity

          People

            Unassigned Unassigned
            kukumber Andrey
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: