Bug 1043853

Summary: Concurrent message headers modification causes that message is never sent
Product: [JBoss] JBoss Data Grid 6 Reporter: Radim Vansa <rvansa>
Component: JGroupsAssignee: Tristan Tarrant <ttarrant>
Status: CLOSED UPSTREAM QA Contact: Martin Gencur <mgencur>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: bban, pslavice
Target Milestone: CR1   
Target Release: 6.2.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Sending a message through JGroups may fail under some race conditions with ArrayOutOfBoundException. The reliability mechanism will try to resend this message again, but all these subsequent attempts will fail with NullPointerException. </para> <para> Therefore, the message will be never received on the receiver node and will be held in unacknowledged messages buffer on the sender node. If this message is ordered within JGroups, no more ordered messages from this node will be delivered on the receiver node. Some following messages may be buffered as well, eventually leading to OutOfMemoryException. </para> <para> It is recommended to use UNICAST3 as this dramatically reduces the chance of this bug to happen (it was observed with UNICAST2).
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-10 03:34:39 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: 1059774    

Description Radim Vansa 2013-12-17 10:55:30 UTC
Under some circumstances the TP protocol may try to add the TP header to message twice concurrently.
This happens for example when the stable message triggers retransmission while the message has been sent right now.
This may result in ArrayOutOfBoundException in Headers._putHeader and/or subsequent NullPointerException in Headers.size(). The retransmission attempt always fails, the message is never delivered. Moreover, keeping this (and possibly following) messages in the transmission table can lead to OOME.

Comment 1 Radim Vansa 2013-12-17 10:56:35 UTC
JDG 6.2 has to use JGroups 3.4.2 or later where this bug is fixed.

Comment 7 Red Hat Bugzilla 2025-02-10 03:34:39 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.