[ https://issues.apache.org/jira/browse/GEODE-5345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kirk Lund updated GEODE-5345: ----------------------------- Summary: Region initialization latches should not be released twice (was: Region initialization latches should not be invoked twice when creating a region) > Region initialization latches should not be released twice > ---------------------------------------------------------- > > Key: GEODE-5345 > URL: https://issues.apache.org/jira/browse/GEODE-5345 > Project: Geode > Issue Type: Bug > Components: regions > Reporter: Kirk Lund > Priority: Minor > > Log statements reveal that the methods which release initialization latches > (before-initial-image and after-initial-image) are being invoked twice when > creating BucketRegions: > {noformat} > 11365-1: [fine 2018/06/21 15:09:27.699 PDT > gemfire1_rs-GEM-1722-klunda0i3large-hydra-client-10_11365 <Pooled Waiting > Message Processor 5> tid=0xd0] Releasing Initialization Latch (before initial > image) for /__PR/_B__partitionedRegion_60 > 11365-1: [info 2018/06/21 15:09:27.699 PDT > gemfire1_rs-GEM-1722-klunda0i3large-hydra-client-10_11365 <Pooled Waiting > Message Processor 5> tid=0xd0] Region /__PR/_B__partitionedRegion_60 was > created on this member with the persistent id > rs-GEM-1722-klunda0i3large-hydra-client-10/10.32.108.22:/var/vcap/data/rundir/concParRegPersistVOOH4.bt015 > /concParRegPersist-0621-150824/vm_0_client1_disk_1 created at > timestamp 1529618948528 version 0 diskStoreId > efc74f8db5024abb-81bedb7d3f6e038f name null. > 11365-1: [fine 2018/06/21 15:09:27.699 PDT > gemfire1_rs-GEM-1722-klunda0i3large-hydra-client-10_11365 <Pooled Waiting > Message Processor 5> tid=0xd0] Releasing Initialization Latch (after initial > image) for /__PR/_B__partitionedRegion_60 > > 11365-1: [info 2018/06/21 15:09:27.699 PDT > gemfire1_rs-GEM-1722-klunda0i3large-hydra-client-10_11365 <Pooled Waiting > Message Processor 5> tid=0xd0] Initialization of region > _B__partitionedRegion_60 completed > 11365-1: [fine 2018/06/21 15:09:27.700 PDT > gemfire1_rs-GEM-1722-klunda0i3large-hydra-client-10_11365 <Pooled Waiting > Message Processor 5> tid=0xd0] Releasing Initialization Latch (before initial > image) for /__PR/_B__partitionedRegion_60 > 11365-1: [fine 2018/06/21 15:09:27.700 PDT > gemfire1_rs-GEM-1722-klunda0i3large-hydra-client-10_11365 <Pooled Waiting > Message Processor 5> tid=0xd0] Releasing Initialization Latch (after initial > image) for /__PR/_B__partitionedRegion_60 > {noformat} > These log statements are only logged in one method each: > {noformat} > void releaseBeforeGetInitialImageLatch() { > if (logger.isDebugEnabled()) { > logger.debug("Releasing Initialization Latch (before initial image) for > {}", getFullPath()); > } > releaseLatch(this.getInitializationLatchBeforeGetInitialImage()); > } > void releaseAfterGetInitialImageLatch() { > if (logger.isDebugEnabled()) { > logger.debug("Releasing Initialization Latch (after initial image) for > {}", getFullPath()); > } > releaseLatch(this.getInitializationLatchAfterGetInitialImage()); > } > {noformat} > Call hierarchy for these methods shows that there are multiple code paths. > I'm not sure if they are double invoked for non-Bucket Region types or not: > {noformat} > LocalRegion.releaseBeforeGetInitialImageLatch() > (org.apache.geode.internal.cache) > DistributedRegion.getInitialImageAndRecovery(InputStream, > InternalDistributedMember, InternalRegionArguments, boolean, > PersistentMemberID) (org.apache.geode.internal.cache) > DistributedRegion.initialize(InputStream, InternalDistributedMember, > InternalRegionArguments) (org.apache.geode.internal.cache) > LocalRegion.initialize(InputStream, InternalDistributedMember, > InternalRegionArguments) (org.apache.geode.internal.cache) > LocalRegion.releaseLatches() (org.apache.geode.internal.cache) > PartitionedRegion.initPRInternals(InternalRegionArguments) > (org.apache.geode.internal.cache) > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)