UNICAST: multiple SEND_FIRST_SEQNO messages cause message loss
--------------------------------------------------------------
Key: JGRP-966
URL:
https://jira.jboss.org/jira/browse/JGRP-966
Project: JGroups
Issue Type: Bug
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 2.6.10.merge, 2.8
If we have A and B:
A: 5 6 7 8 9 and
B: -
- A sends #5 - # 9 to B, then B will send a SEND_FIRST_SEQNO to A per message for a total
of 5
- A resends #5 with a conn-id of (say) 322649
- B creates the receiver window for A with conn-id=322649 and adds #5, then removes it and
acks #5
- A receives an ack for #5 and removes #5 from it sender window
- A then receives the next (stale) SEND_FIRST_SEQNO request
- A now resends #6 with a conn-id=322649
---> B drops #6 (and all subsequent messages) with conn-id=322649 !
==> The simple solution is to not drop messages with a conn-id if the receiver window
already exists *and* the conn-ids match
Potential issue: what if we re-send #6 with conn-id=322649 *before* #5 with conn-id=322649
?
- A message on the sender side is only removed if it received an ACK from the receiver
- Reception of an ACK means the receiver window was created
- When we receive ACK(5), that means we created a receiver window on B with
conn-id=322649 and added #5
- Therefore the re-sending of #6 with conn-id=322649 will *never* happen before the
receiver window on B is created for #5 and conn-id=322649 !
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira