-
Bug
-
Resolution: Done
-
Undefined
-
AMQ 7.10.1.GA
-
None
-
False
-
None
-
False
-
-
tl;dr of what happens:
I have an openshift-based setup of Clustered AMQ Broker
cli-qpid-sender is executed to send message to broker #1
then with small pause (less than 5-10 seconds) cli-qpid-receiver is executed to receive messages from broker #0.
In this case, what is described in code block below is manifested, with a long wait period (about ~60+seconds)
In case when pause between executions of sender/receive is >10-20 seconds, cli-qpid-sender is able to receive the message just fine in under 5 seconds.
There are 2 problems with this:
1) timeout time is way too long. (that probably is on cli-java side, given the error message).
2) error message is uninformative - it just states that client failed to connect to broker, not that target queue on broker is empty (which might happen due to synchronization issue between 2 broker instances).
Log from cli-java client image:
sh-5.1$ cli-qpid-sender --broker-uri amqp://ex-aao-amqp-1-svc.mkr-large.svc.cluster.local:5672 --address /second --msg-content-from-file=test.img sh-5.1$ cli-qpid-receiver --broker amqp://ex-aao-amqp-0-svc.mkr-large.svc.cluster.local:5672 --address /second --log-msgs json > 2Exception while consuming message! org.apache.qpid.jms.JmsOperationTimedOutException: Remote did not respond to a drain request in time at org.apache.qpid.jms.provider.exceptions.ProviderOperationTimedOutException.toJMSException(ProviderOperationTimedOutException.java:39) at org.apache.qpid.jms.provider.exceptions.ProviderOperationTimedOutException.toJMSException(ProviderOperationTimedOutException.java:25) at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:80) at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:112) at org.apache.qpid.jms.JmsConnection.pull(JmsConnection.java:915) at org.apache.qpid.jms.JmsConnection.pull(JmsConnection.java:899) at org.apache.qpid.jms.JmsMessageConsumer.performPullIfRequired(JmsMessageConsumer.java:732) at org.apache.qpid.jms.JmsMessageConsumer.dequeue(JmsMessageConsumer.java:332) at org.apache.qpid.jms.JmsMessageConsumer.receive(JmsMessageConsumer.java:213) at com.redhat.mqe.lib.ReceiverClient.consumeMessage(ReceiverClient.java:209) at com.redhat.mqe.lib.ReceiverClient.startClient(ReceiverClient.java:149) at com.redhat.mqe.lib.Main.main(Main.java:46) at com.redhat.mqe.jms.Main.main(Main.java:80) at com.redhat.mqe.jms.Main.main(Main.java:84) Caused by: org.apache.qpid.jms.provider.exceptions.ProviderOperationTimedOutException: Remote did not respond to a drain request in time at org.apache.qpid.jms.provider.amqp.AmqpConsumer.lambda$stop$1(AmqpConsumer.java:184) at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:153) at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:403) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at java.base/java.lang.Thread.run(Thread.java:829)
- clones
-
ENTMQBR-7463 AMQP Large Messages in Clustering Broker setup can fail to be consumed
- Closed