[ https://issues.apache.org/jira/browse/GEODE-9132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17551855#comment-17551855 ]
ASF subversion and git services commented on GEODE-9132: -------------------------------------------------------- Commit ac800e0af65401eb1098e14b58a5ebc956bd26de in geode's branch refs/heads/feature/GEODE-7665 from Kirk Lund [ https://gitbox.apache.org/repos/asf?p=geode.git;h=ac800e0af6 ] GEODE-9132: Always acquire write lock for PR clear > PR clear to take locks on all buckets unconditionally. > ------------------------------------------------------ > > Key: GEODE-9132 > URL: https://issues.apache.org/jira/browse/GEODE-9132 > Project: Geode > Issue Type: Sub-task > Components: regions > Reporter: Anilkumar Gingade > Assignee: Blake Bender > Priority: Major > Labels: GeodeOperationAPI, pull-request-available > > Existing behavior: > PR clear employs two different locking behavior based on the presence of > client subscription and cache-listeners. If there is no subscription or > cache-listener it takes the bucket locks on local nodes else it will send a > message to take locks on all buckets before doing the clear. > Expected behavior: > To keep the code/behavior simple PR clear to employ single locking behavior. > It will take the lock on all buckets before doing clear irrespective of > subscription or cache-listener presence. > Solution: > Remove the following check that drives taking lock on local nodes: > {code} > boolean acquireClearLockForNotification = > (partitionedRegion.hasAnyClientsInterested() || > partitionedRegion.hasListener()); > {code} > And it will call: > {code} > obtainLockForClear(regionEvent); > {code} > Also remove the logic taking lock in individual nodes in: > DistributedRegion.obtainWriteLocksForClear() > Remove: > if (!localLockedAlready) { > lockLocallyForClear(getDistributionManager(), getMyId(), regionEvent); > } > -- This message was sent by Atlassian Jira (v8.20.7#820007)