Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
In creating bucket regions, region event state from the current bucket hosts was sent to the node creating the bucket, and later the node with newly created bucket will request GII from one of the current host. There is a race that gii can send an entry but does not have the corresponding event state in the provider when sending the state.
If the node just created bucket received the retried putIfAbsent event, it will not find the event in its event tracker (has not seen the event), even though the entry exists in its cache, and it tries to find and set the version tag from other peers.
Later, due to the following condition check, the event will not be processed after this check and will not be distributed to peers.
if (getOwner().getConcurrencyChecksEnabled() && event.getOperation() == Operation.PUT_IF_ABSENT && !event.hasValidVersionTag() && event.isPossibleDuplicate()) { Object retainedValue = getRegionEntry().getValueRetain(getOwner());
Attachments
Issue Links
- links to