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

NAKACK: overwriteDigest() doesn't adjust sequence number

    XMLWordPrintable

Details

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

    Description

      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

      Attachments

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

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: