-
Bug
-
Resolution: Done
-
Major
-
None
-
None
When we set a digest in NAKACK, we do not overwrite an element for a member if it already exists. With state transfer, the following issue can occur (see [1]):
Scenario #2:
- [NAKACK] D receives B:11 (digest is 11 now for B)
- [NAKACK] D applies the digest: this does NOT reset the digest for B to #10, but it remains #11 !!
- D delivers B:11 to the app, changes state
- D sets state, overwriting the change from B:11
--> B:11 will NOT get retransmitted as the digest in NAKACK contains it !
--> B:11 is lost
SOLUTION: maybe add a 'state' boolean to the setDigest() method and overwrite if true
This is a regression in 2.8 only; 2.6.x and 2.4.x handle SET_DIGEST correctly and do overwrite the digest.
- is related to
-
JGRP-1013 STATE_TRANSFER / STREAMING_STATE_TRANSFER: close BARRIER before applying state response
- Resolved