[
https://issues.jboss.org/browse/JGRP-1579?page=com.atlassian.jira.plugin....
]
Bela Ban commented on JGRP-1579:
--------------------------------
Actually, on second thought, this is not an issue, as *a message from A will always be
received by A !* The problem occurred because we placed DISCARD just below NAKACK2;
however, this is *not* the place where messages are dropped (or else this would constitute
a bug !). Messages are dropped by the network, so we need to change the test OOBTest: move
DISCARD down the stack, just above TP, and set up="0.5" instead of
down="0.5".
NAKACK2 / UNICAST2: last message sent to self may not get delivered
-------------------------------------------------------------------
Key: JGRP-1579
URL:
https://issues.jboss.org/browse/JGRP-1579
Project: JGroups
Issue Type: Bug
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.2.7, 3.3
When A sends a message M that's received by A (M is either a multicast, or a unicast
to A), and the message is dropped below NAKACK2 / UNICAST2, then A might *receive* M, but
not *deliver* it if M is the last message sent.
Scenario (for NAKACK2, but similar to UNICAST2):
- A's table is: HD=9, HR=9
- A sends M10
- NAKACK2 adds M10: HD=9, HR=10 (highest-delivered is still 9, as we haven't removed
M10 yet)
- The transport drops M10
- A sends no further messages
- STABLE will make sure that A's HR is 10, but since no message was received, we
won't *remove* any messages from A's table !
--> The result is that although A *received* M10, it won't *deliver* M10 (until
another message is received) !
SOLUTION:
- Maybe we can use the retransmit task to see if there are any unremoved messages in a
table and - if so - remove them and pass them up the stack to the application.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira