Aaron Lindsey created GEODE-9407:
------------------------------------

             Summary: 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


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