[ 
https://issues.apache.org/jira/browse/GEODE-10286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jinmei Liao reassigned GEODE-10286:
-----------------------------------

    Assignee: Jinmei Liao

> cache close in response to a forced disconnect with persistent regions may 
> skip some cleanup 
> ---------------------------------------------------------------------------------------------
>
>                 Key: GEODE-10286
>                 URL: https://issues.apache.org/jira/browse/GEODE-10286
>             Project: Geode
>          Issue Type: Bug
>          Components: core
>            Reporter: Darrel Schneider
>            Assignee: Jinmei Liao
>            Priority: Major
>              Labels: needsTriage
>
> During a cache close, persistent regions may not cleanup as much as they 
> should. This is because when the PersistentAdvisor is closed, CancelException 
> is not handled causing other parts of the close to be skipped. I think the 
> place to handle it is: 
> DistributedRegion.distributedRegionCleanup(DistributedRegion.java:2564). Here 
> is an exception showing what it looks like when this happens:
> {noformat}
> org.apache.geode.distributed.DistributedSystemDisconnectedException: 
> Distribution manager on rs-RunItNow-ZH1504a1i3xlarge-hydra-client-10(dataStor
> egemfire2_host1_421:421)<ec><v22>:41004 started at Wed Mar 23 17:11:48 PDT 
> 2022: Member isn't responding to heartbeat requests, caused by org.apac
> he.geode.ForcedDisconnectException: Member isn't responding to heartbeat 
> requests
>         at 
> org.apache.geode.distributed.internal.ClusterDistributionManager$Stopper.generateCancelledException(ClusterDistributionManager.java:289
> 3)
>         at 
> org.apache.geode.distributed.internal.InternalDistributedSystem$Stopper.generateCancelledException(InternalDistributedSystem.java:1177)
>         at 
> org.apache.geode.CancelCriterion.checkCancelInProgress(CancelCriterion.java:83)
>         at 
> org.apache.geode.distributed.internal.ClusterElderManager.getElderId(ClusterElderManager.java:76)
>         at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.getElderId(ClusterDistributionManager.java:2085)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.getElderId(DLockService.java:254)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.notLockGrantorId(DLockService.java:824)
>         at 
> org.apache.geode.distributed.internal.locks.DLockService.unlock(DLockService.java:1807)
>         at 
> org.apache.geode.internal.cache.persistence.PersistenceAdvisorImpl.releaseTieLock(PersistenceAdvisorImpl.java:1181)
>         at 
> org.apache.geode.internal.cache.persistence.PersistenceAdvisorImpl.close(PersistenceAdvisorImpl.java:1158)
>         at 
> org.apache.geode.internal.cache.DistributedRegion.distributedRegionCleanup(DistributedRegion.java:2564)
>         at 
> org.apache.geode.internal.cache.DistributedRegion.postDestroyRegion(DistributedRegion.java:2657)
>         at 
> org.apache.geode.internal.cache.LocalRegion.recursiveDestroyRegion(LocalRegion.java:2732)
>         at 
> org.apache.geode.internal.cache.LocalRegion.basicDestroyRegion(LocalRegion.java:6241)
>         at 
> org.apache.geode.internal.cache.DistributedRegion.basicDestroyRegion(DistributedRegion.java:1834)
>         at 
> org.apache.geode.internal.cache.LocalRegion.handleCacheClose(LocalRegion.java:7320)
>         at 
> org.apache.geode.internal.cache.DistributedRegion.handleCacheClose(DistributedRegion.java:2691)
>         at 
> org.apache.geode.internal.cache.GemFireCacheImpl.doClose(GemFireCacheImpl.java:2308)
>         at 
> org.apache.geode.internal.cache.GemFireCacheImpl.close(GemFireCacheImpl.java:2154)
>         at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.disconnect(InternalDistributedSystem.java:1538)
>         at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.reconnect(InternalDistributedSystem.java:2545)
>         at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.tryReconnect(InternalDistributedSystem.java:2408)
>         at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.disconnect(InternalDistributedSystem.java:1254)
>         at 
> org.apache.geode.distributed.internal.ClusterDistributionManager$DMListener.membershipFailure(ClusterDistributionManager.java:2329)
>         at 
> org.apache.geode.distributed.internal.membership.gms.GMSMembership.uncleanShutdown(GMSMembership.java:1190)
>         at 
> org.apache.geode.distributed.internal.membership.gms.GMSMembership$ManagerImpl.lambda$uncleanShutdownDS$0(GMSMembership.java:1793)
>         at java.base/java.lang.Thread.run(Thread.java:833)
> Caused by: org.apache.geode.ForcedDisconnectException: Member isn't 
> responding to heartbeat requests
>         at 
> org.apache.geode.distributed.internal.ClusterDistributionManager$DMListener.membershipFailure(ClusterDistributionManager.java:2319)
>         ... 3 more
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to