[
https://issues.apache.org/jira/browse/QPID-8572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrey updated QPID-8572:
-------------------------
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:
{noformat}
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’{noformat}
was:
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:
{noformat}
022-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’{noformat}
> [Broker-J] The binding is broken when queue and exchange have the same name
> ---------------------------------------------------------------------------
>
> Key: QPID-8572
> URL: https://issues.apache.org/jira/browse/QPID-8572
> Project: Qpid
> Issue Type: Bug
> Components: Broker-J
> Affects Versions: qpid-java-broker-8.0.6
> Reporter: Andrey
> Priority: Major
> Attachments: 500_error.png
>
>
> 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:
> {noformat}
> 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’{noformat}
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]