[ https://issues.apache.org/jira/browse/GEODE-10199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Owen Nichols closed GEODE-10199. -------------------------------- > A retried putIfAbsent operation may not be distributed to peer and its client > ----------------------------------------------------------------------------- > > Key: GEODE-10199 > URL: https://issues.apache.org/jira/browse/GEODE-10199 > Project: Geode > Issue Type: Bug > Components: regions > Reporter: Eric Shu > Assignee: Eric Shu > Priority: Major > Labels: GeodeOperationAPI, blocks-1.15.0, pull-request-available > Fix For: 1.15.0 > > > 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. > {code:java} > if (getOwner().getConcurrencyChecksEnabled() && > event.getOperation() == Operation.PUT_IF_ABSENT && > !event.hasValidVersionTag() && > event.isPossibleDuplicate()) { > Object retainedValue = getRegionEntry().getValueRetain(getOwner()); > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)