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)