[ 
https://issues.apache.org/jira/browse/GEODE-9407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17378128#comment-17378128
 ] 

ASF subversion and git services commented on GEODE-9407:
--------------------------------------------------------

Commit 6ba9a825abee6ffac7eec8ef4480cffdb2a5dc6b in geode's branch 
refs/heads/develop from Aaron Lindsey
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=6ba9a82 ]

GEODE-9407: Handle exception getting region names (#6665)

GetMemberInformationFunction may throw RegionDestroyedException if a
hosted region is destroyed while the function is checking the region
names. This exception is logged as an "error" level message which is
confusing to users.

Catch the exception and omit the destroyed region from the list of
hosted region names.

> RegionDestroyedException while executing GetMemberInformationFunction
> ---------------------------------------------------------------------
>
>                 Key: GEODE-9407
>                 URL: https://issues.apache.org/jira/browse/GEODE-9407
>             Project: Geode
>          Issue Type: Bug
>          Components: gfsh, management
>            Reporter: Aaron Lindsey
>            Assignee: Aaron Lindsey
>            Priority: Minor
>              Labels: pull-request-available
>
> GetMemberInformationFunction is used by the gfsh "describe member" command, 
> the management REST API "/members" endpoint, and is also used internally 
> within Geode. If this function is invoked while concurrently destroying a 
> region, it may throw RegionDestroyedException while trying to gather 
> information about the destroyed region's subregions.
>  
> This bug manifests as a nasty error message in the logs of the member where 
> the function was being executed (shown below). This confuses Geode 
> users/developers/operators because it looks like a problem with the system 
> while instead it's actually expected behavior. GetMemberInformationFunction 
> should probably catch RegionDestroyedException and remove the destroyed 
> region from the set of region names in ManagementUtils.getAllRegionNames.
>  
> {code:java}
> [error 2021/06/29 23:01:38.640 GMT system-test-gemfire-server-0 <Function 
> Execution Processor3> tid=0x94] Unable to gather runtime information on this 
> member.
> org.apache.geode.cache.RegionDestroyedException: Partitioned Region @79f60edb 
> [path='/region'; dataPolicy=PARTITION; prId=37; isDestroyed=true; 
> isClosed=false; retryTimeout=3600000; serialNumber=4309; partition 
> attributes=PartitionAttributes@1299510666[redundantCopies=2;localMaxMemory=594;totalMaxMemory=2147483647;totalNumBuckets=113;partitionResolver=null;colocatedWith=null;recoveryDelay=-1;startupRecoveryDelay=0;FixedPartitionAttributes=null;partitionListeners=null];
>  on VM system-test-gemfire-server-0(system-test-gemfire-server-0:1)<v3>:41000]
>  at 
> org.apache.geode.internal.cache.LocalRegion.checkRegionDestroyed(LocalRegion.java:7342)
>  at 
> org.apache.geode.internal.cache.LocalRegion.checkReadiness(LocalRegion.java:2757)
>  at 
> org.apache.geode.internal.cache.LocalRegion.subregions(LocalRegion.java:1908)
>  at 
> org.apache.geode.management.internal.util.ManagementUtils.getAllRegionNames(ManagementUtils.java:167)
>  at 
> org.apache.geode.management.internal.functions.GetMemberInformationFunction.getMemberInformation(GetMemberInformationFunction.java:131)
>  at 
> org.apache.geode.management.internal.configuration.realizers.MemberRealizer.get(MemberRealizer.java:52)
>  at 
> org.apache.geode.management.internal.configuration.realizers.MemberRealizer.get(MemberRealizer.java:35)
>  at 
> org.apache.geode.management.internal.functions.CacheRealizationFunction.executeGet(CacheRealizationFunction.java:136)
>  at 
> org.apache.geode.management.internal.functions.CacheRealizationFunction.execute(CacheRealizationFunction.java:92)
>  at 
> org.apache.geode.internal.cache.MemberFunctionStreamingMessage.process(MemberFunctionStreamingMessage.java:201)
>  at 
> org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:376)
>  at 
> org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:441)
>  at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>  at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>  at 
> org.apache.geode.distributed.internal.ClusterOperationExecutors.runUntilShutdown(ClusterOperationExecutors.java:444)
>  at 
> org.apache.geode.distributed.internal.ClusterOperationExecutors.doFunctionExecutionThread(ClusterOperationExecutors.java:379)
>  at 
> org.apache.geode.logging.internal.executors.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:120)
>  at java.base/java.lang.Thread.run(Thread.java:829){code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to