Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1215786

Summary: [GSS] (6.4.z) Concurrent message headers modification causes that message is never sent
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: dereed
Component: ClusteringAssignee: dereed
Status: CLOSED CURRENTRELEASE QA Contact: Jitka Kozana <jkudrnac>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.4.0CC: bbaranow, cdewolf, jawilson, jkudrnac
Target Milestone: CR1   
Target Release: EAP 6.4.2   
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. 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.
Story Points: ---
Clone Of: Environment:
Last Closed: 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: 1215788, 1219165    

Description dereed 2015-04-27 17:34:36 UTC
JGRP-1752: Concurrent message headers modification causes that message is never sent

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 dereed 2015-04-27 19:03:36 UTC
Test case: org/jgroups/tests/HeadersTest#testPutHeaderIfAbsent

Comment 4 Jitka Kozana 2015-06-25 08:51:16 UTC
Verified on 6.4.2.CP.CR1.

Comment 5 Petr Penicka 2017-01-17 10:15:40 UTC
Retroactively bulk-closing issues from released EAP 6.4 cumulative patches.

Comment 6 Petr Penicka 2017-01-17 10:16:11 UTC
Retroactively bulk-closing issues from released EAP 6.4 cumulative patches.