Status: Closed (View Workflow)
Steps to reproduce the issue - NOT 100% reproducer: git clone git: //git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git cd eap-tests-hornetq/scripts/ scp firstname.lastname@example.org:~/tmp/jboss-eap-7.1.0.DR6-artemis-140.zip . # see private comment below for password # change path per location of jboss-eap-7.1.0.DR6-artemis-140.zip groovy -DEAP_ZIP_URL=file: ///home/mnovak/tmp/jboss-eap-7.1.0.DR6-artemis-140.zip PrepareServers7.groovy export WORKSPACE=$PWD export JBOSS_HOME_1=$WORKSPACE/server1/jboss-eap export JBOSS_HOME_2=$WORKSPACE/server2/jboss-eap export JBOSS_HOME_3=$WORKSPACE/server3/jboss-eap export JBOSS_HOME_4=$WORKSPACE/server4/jboss-eap cd ../jboss-hornetq-testsuite/ sh repeat_test_until_fail.sh JmsMessagesTestCase#testThatDivertedMessagesIsAlsoScheduledNonExclusiveLargeMessage | tee test.log
1. Start server EAP 7.1.0.DR6 (with Artemis 1.4.0) with queue InQueue and OutQueue. Configure non-exclusive divert from InQueue to OutQueue.
2. Send large message to InQueue with scheduled delivery 10 seconds
3. Start consumer on OutQueue with receive timeout 1000ms and check that NO message was received
4. Start consumer on InQueue with receive timeout 1000ms and check that NO message was received
5. Start consumer on InQueue with receive timeout 11000ms and check that message is received
6. Start consumer on OutQueue with receive timeout 11000ms and check that message is received
Sometimes happens that consumer in step 3. receives a message. By checking trace logs, consumer in step 3. was receiving message 9664ms instead of ~1000ms.
In attachment is trace log from client and server and test log with client thread dump during ~10s receive.
In the moment when client tries to receive a message there is send SessionForceConsumerDelivery packet by client:
Response from server comes ~10s later - it's packet SessionReceiveMessage:
in the mean time client is waiting on - ---org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive(ClientConsumerImpl.java:261):
and is waiting for notify. From server log I can see that SessionReceiveMessage was send at:
but it wasn't flushed and for some reason is actually send ~10s later with the large message: