Bug 1121109 - [GSS](6.4.z) Message starvation when a consumer hangs in a domain mode cluster
Summary: [GSS](6.4.z) Message starvation when a consumer hangs in a domain mode cluster
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: HornetQ
Version: 6.2.0
Hardware: x86_64
OS: Linux
Target Milestone: ---
: ---
Assignee: Yong Hao Gao
QA Contact: Miroslav Novak
Russell Dickenson
Depends On:
TreeView+ depends on / blocked
Reported: 2014-07-18 11:30 UTC by Tyronne Wickramarathne
Modified: 2019-08-15 03:54 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2016-07-08 15:37:14 UTC
Type: Feature Request

Attachments (Terms of Use)
domain.xml (96.45 KB, text/xml)
2014-08-04 23:45 UTC, Tyronne Wickramarathne
no flags Details
host.xml (3.71 KB, text/xml)
2014-08-04 23:46 UTC, Tyronne Wickramarathne
no flags Details

Description Tyronne Wickramarathne 2014-07-18 11:30:26 UTC
Description of problem:
A message starvation was observed when a consumer hangs on a two node HornetQ cluster in domain mode

Version-Release number of selected component (if applicable):
JBoss-EAP-6.2_CP4 aka JBoss-EAP-6.2.4
HornetQ-2.3.14.Final ( (Branch 2.3.eap6_2), 123)

How reproducible:

Steps to Reproduce:
1. Please configure two cluster aware instances in a domain.xml to host two node cluster; NodeA and NodeB
2. Configure a destination at both server instances, queue/A
3. Start both server instances
4. Create two MDBeans with having maxSession at "1", FirstMDB and SecondMDB. Please trigger a latency in FirstMDB by making the consumer thread to sleep 5 seconds
5. Deploy both MDBs at each server instance
6. Stop the NodeB
7. Send 250+ messages to queue/A in NodeA
8. Please let the MDB in NodeA to consume a few messages
9. Start the Node2

Actual results:

The consumer in NodeB didn't consume any messages although the consumer-window-size was configured to "0" at both server instances
You could observe the consumer in NodeB starving messages 

Expected results:
Both consumer should be able to consume messages. 

Additional info:
Configuration files and test MDB would follow in a while.

Comment 1 Clebert Suconic 2014-07-18 13:15:36 UTC
I don't think this is a bug... you can configure redistribution delay and the messages would be redistributed.

Comment 2 Tyronne Wickramarathne 2014-07-20 22:22:37 UTC
Hi Clebert,

I have configured redistribution delay to 1 second during my tests. This issue occurs when the first consumer, FirstMDB pauses for 5 seconds, during message consumption. 

This works fine as expected when I remove the 5 second pause in the consumer. I have introduced a pause in the consumer to emulate the problem my customer was seeing.

I assigned this case to Howard, since I have discussed this issue in detail with him. :-)

Comment 7 Tyronne Wickramarathne 2014-08-04 23:45:52 UTC
Created attachment 924041 [details]

Comment 8 Tyronne Wickramarathne 2014-08-04 23:46:21 UTC
Created attachment 924042 [details]

Comment 10 Clebert Suconic 2014-08-05 00:26:50 UTC
If you don't set the consumer-window-size to 0 the test case is invalid for us

Comment 21 Tyronne Wickramarathne 2014-10-09 21:44:09 UTC
I thought of updating this bugzilla with a comment to avoid any confusions with its title. The same behaviour can be seen in standalone mode. 


Comment 22 Clebert Suconic 2015-06-18 15:22:27 UTC
I wouldn't fix this issue. You can just set consumerWindowSize=0 for slow consumers, or set slow consumer detection to kill the consumer.

I don't see any issues that could be fixed here.

Comment 29 Brad Maxwell 2016-07-08 15:37:14 UTC
Closing as this is more of a feature that would need to be implemented in Artemis

Note You need to log in before you can comment on or make changes to this bug.