GitHub user gaohoward opened a pull request:
https://github.com/apache/activemq-artemis/pull/1434
ARTEMIS-1315 Client disconnection may cause consumer to hang
When calling a consumer to receive message with a timeout
(receive(long timeout), if the consumer's buffer is empty, it sends
a 'forced delivery' the waiting forever, expecting the server to
send back a 'forced delivery" message if the queue is empty.
If the connection is disconnected as the arrived 'forced
delivery' message is corrupted, this 'forced delivery' message
never gets to consumer. After the session is reconnected,
the consumer never knows that and stays waiting.
To fix that we can send a 'forced delivery' to server right
after the session is reconnected.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/gaohoward/activemq-artemis lmaster_1315
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/activemq-artemis/pull/1434.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1434
----
commit a702125a102588556bbb8f2971f3f100c3f4eece
Author: Howard Gao <[email protected]>
Date: 2017-08-01T11:49:11Z
ARTEMIS-1315 Client disconnection may cause consumer to hang
When calling a consumer to receive message with a timeout
(receive(long timeout), if the consumer's buffer is empty, it sends
a 'forced delivery' the waiting forever, expecting the server to
send back a 'forced delivery" message if the queue is empty.
If the connection is disconnected as the arrived 'forced
delivery' message is corrupted, this 'forced delivery' message
never gets to consumer. After the session is reconnected,
the consumer never knows that and stays waiting.
To fix that we can send a 'forced delivery' to server right
after the session is reconnected.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---