Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
qpid-java-broker-8.0.6
-
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:
- Create an exchange and queue with the same name (e.g. Ae8M6kKM).
- Create a binding for the exchange Ae8M6kKM and queue Ae8M6kKM.
- Try to send and receive a message. All works.
- Move master node to another server.
- Try to send and receive a message. The message is dropped.
- Try to delete the binding. The web interface returns a 500 error "Please correct the problem and retry your operation." and delete the binding.
- Create new binding for the exchange Ae8M6kKM and queue Ae8M6kKM.
- Try to send and receive a message. All works.
- Move master node to another server.
- 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’