Test scenario:
- Call consumer.receive(1000) on empty queue.
- Check whether receive call is unblocked after the 1 second.
Issue: The receive call is not unblocked.
I hit the issue which was initially reported in JBEAP-6443. I found out that the issue is somehow related to http connectors/acceptors and batch-delay parameter. I am able to reproduce it only if a client connects via http-connector with non-zero batch-delay. When I tried classic remote-connector, everything worked with both zero and non-zero batch-delay.
I am able to reproduce the issue with both Artemis 1.1 (EAP 7.0.3) and Artemis 1.4.
From the thread dump, you can see where the client hangs.
Stack trace of thread: Thread[Thread-10,5,main] ---java.lang.Object.wait(Native Method) ---org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive(ClientConsumerImpl.java:258) ---org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive(ClientConsumerImpl.java:391) ---org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.getMessage(ActiveMQMessageConsumer.java:198) ---org.apache.activemq.artemis.jms.client.ActiveMQMessageConsumer.receive(ActiveMQMessageConsumer.java:122) ---org.jboss.qa.hornetq.apps.clients.Receiver11.receiveMessage(Receiver11.java:140) ---org.jboss.qa.hornetq.apps.clients.ReceiverAutoAck.run(ReceiverAutoAck.java:75)
- clones
-
JBEAP-6570 Consumer.receive hangs if http acceptor with non-zero batch-delay is configured
-
- Closed
-