Jens Deppe created GEODE-1349:
---------------------------------

             Summary: "java.lang.InternalError: Memory Pool not found" on client
                 Key: GEODE-1349
                 URL: https://issues.apache.org/jira/browse/GEODE-1349
             Project: Geode
          Issue Type: Bug
          Components: statistics
            Reporter: Jens Deppe


In a client based gemfire services they got this repeating exception and cache 
failure: 

Caused by: java.lang.InternalError: Memory Pool not found 
at sun.management.MemoryPoolImpl.getUsage0(Native Method) 
at sun.management.MemoryPoolImpl.getUsage(MemoryPoolImpl.java:96) 
at 
com.gemstone.gemfire.internal.stats50.VMStats50.refreshMemoryPools(VMStats50.java:502)
 
at com.gemstone.gemfire.internal.stats50.VMStats50.refresh(VMStats50.java:631) 
at 
com.gemstone.gemfire.internal.HostStatSampler.sampleSpecialStats(HostStatSampler.java:501)
 
at com.gemstone.gemfire.internal.HostStatSampler.run(HostStatSampler.java:195) 

Unfortunately the logs have rolled and of not much use anymore. 

In the code in VMStats50.refreshMemoryPools there is a check for if 
(!mp.isValid()) ... But there is still a time window between the 
MemoryPoolMXBean.isValid() call and the MemoryPoolMXBean.getUsage() call where 
the JVM could have gotten rid of the pool. In addition, 
MemoryPoolMXBean.getUsage() returns null by JVM contract and it doesn't seem 
the code checks for null return value. 

There is no check for null value GemFire 8.x. either. 

Can this and similar code paths be reviewed please? 

It has happened once and after restart the issue was gone. When this happened 
it caused a service outage for the customer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to