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

NAKACK: overwriteDigest() doesn't adjust sequence number

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 2.10.2, 2.11.1, 2.12
    • None
    • None

      NAKACK.overwriteDigest() is used by the 2 state transfer protocols (STATE_TRANSFER and STREAMING_STATE_TRANSFER).

      When A has a digest A:250,B:10,C:160, and gets the state (as a result of calling JChannel.getState() with a digest of A:230,B:10,C:160, it'll set its own digest to A:230 (from A:250).

      However, A's sequence number (seqno) will remain at 250 ! This means, when A sends the next message, it'll send A:251, but because we set the digest to A:230, A will ask itself to retransmit messages A:230-250 !

      SOLUTION: when receiving digest A:230, A should set its seqno to 230
      WORKAROUND: use FLUSH, which doesn't ship digests on state transfer

        1. ViewHandler.java
          1 kB
        2. tmp.xml
          3 kB
        3. GroupCommunication.java
          7 kB

              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: