-
Task
-
Resolution: Done
-
Major
-
None
-
None
When A sends a unicast message to B, A's message #1 is tagged as first. This will create an entry in the receiver table of B. However, when A sends messages #1 and #2 concurrently, then #2 is probably processed first because #1 takes a bit more time to create the entry in the receiver table.
When #2 is received by B, it is discarded, as it isn't tagged as 'first', and we send a request to A to resend the first seqno.
However, until A sends message #3, or a stability message is received, A won't retransmit #2 to B. If A was an RPC, it might time out.
SOLUTION: when asking A to resend the lowest seqno, we also pass in the seqno (#2) we received, that caused us to ask A for the resend.
A will then resend all messages in the range [lowest .. seqno].