Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-952

MERGE: UNICAST can lose messages on merging

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 2.6.10.merge, 2.8
    • None
    • None

      The following use case loses messages:

      • A sends #5 to B
      • B expects #4 from A, but adds #5 and acks it
      • A receives the ack(#5) and removes #5 from its sender window
      • Now there is a partition such that B trashes its connection window form A, but A keeps its window for B (A: {A,B}

        , B:

        {B}

        )

      • The partition heals and A sends #6 to B
      • B asks A for its lowest seqno, A resends #4 (with a conn_id)
      • B creates a receiver window for A with seqno=#4
      • A resends #6
      • B adds #6 to its window, but doesn't deliver it because it is missing #5
        --> However, A will NEVER resend #5 because the ack(#5) from B removed #5 from A's sender window !
        ==> Possible SOLUTION: when A gets the SEND_FIRST_SEQNO and there are (unacked) messages in A's sender window, and they are not in order, then A will trash its connection window and copy the pending messages into the new window (with new seqnos !) before sending #1 (with conn_id)
        ==> This solution might lose the original message #5, but that's better than B never being able to deliver any messages anymore !

              rhn-engineering-bban Bela Ban
              rhn-engineering-bban Bela Ban
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: