]
Bela Ban commented on JGRP-1579:
--------------------------------
STABLE would have fixed this for NAKACK2 (not for UNICAST2) when STABLE and STABILITY
messages were *not* tagged as NO_RELIABILITY: as STABLE messages were broadcast, they
generated new NAKACK2 messages and therefore the undelivered M10 would have been delivered
at A when M11 was received.
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: