Bug 1469369

Summary: [GSS](6.4.z) Messages get stuck if you change the configuration to host messages in memory from paging
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Tyronne Wickramarathne <tywickra>
Component: HornetQAssignee: Yong Hao Gao <hgao>
Status: CLOSED CURRENTRELEASE QA Contact: Peter Mackay <pmackay>
Severity: high Docs Contact:
Priority: high    
Version: 6.4.16CC: bmaxwell, csuconic, dosoudil, hgao, jbilek, msvehla, pjurak, rstancel
Target Milestone: CR1   
Target Release: EAP 6.4.19   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-16 11:04:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1498153, 1498190    

Description Tyronne Wickramarathne 2017-07-11 06:43:27 UTC
Description of problem:
Messages get stuck and unable to consume by consumers if you change the configuration to host messages in memory from paging.

Version-Release number of selected component (if applicable):
JBoss EAP 6.4.16
HornetQ 2.3.25.SP19
How reproducible:


Steps to Reproduce:
1. Please configure two load-balancing cluster(NodeA, NodeB)
2. Please configure the broker as follows :

                <persistence-enabled>true</persistence-enabled>
                <jmx-management-enabled>true</jmx-management-enabled>
                <message-counter-enabled>true</message-counter-enabled>
                <journal-type>ASYNCIO</journal-type>
                <journal-file-size>20971520</journal-file-size>
                <journal-min-files>20</journal-min-files>
                <journal-compact-percentage>50</journal-compact-percentage>
                <journal-max-io>1000</journal-max-io>

3. The address settings as follows :

<address-settings>
                    <address-setting match="#">
                        <dead-letter-address>jms.queue.DLQ</dead-letter-address>
                        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
                        <redelivery-delay>30</redelivery-delay>
                        <max-delivery-attempts>5</max-delivery-attempts>
                        <max-size-bytes>1048576</max-size-bytes>
						<address-full-policy>PAGE</address-full-policy> 
						<page-size-bytes>524288</page-size-bytes>
                        <message-counter-history-day-limit>10</message-counter-history-day-limit>
                        <redistribution-delay>1000</redistribution-delay>
                    </address-setting>
                </address-settings>

4.Configure a queue A
5. Send 10000 messages each weighing 5kb - 100kb to NodeA
6. Shutdown both servers after successfully sending messages
7. Please change the max-size-bytes attribute to -1 in both server instances
8. Start both servers and start a consumer to consume messages


Actual results:
The consumer would hang after consuming a few messages

Expected results:
The consumer should be able to consume messages and the broker should be able to remove paged files and load paged messages to the memory

Additional info:

Comment 1 Yong Hao Gao 2017-08-18 02:15:32 UTC
The PR
https://github.com/hornetq/hornetq/pull/2121

Comment 6 Jiří Bílek 2018-01-19 12:40:00 UTC
Verified with EAP 6.4.19.CP.CR2