Darrel Schneider created GEODE-9476:
---------------------------------------

             Summary: VMStats processCpuTime, fdLimit, and fdsOpen will always 
be zero on java 16 and later
                 Key: GEODE-9476
                 URL: https://issues.apache.org/jira/browse/GEODE-9476
             Project: Geode
          Issue Type: Bug
          Components: statistics
            Reporter: Darrel Schneider


VMStats processCpuTime, fdLimit, and fdsOpen will always be zero on java 16 and 
later. 
This is because it calls Method.setAccessible which is not allowed under normal 
conditions starting with java 16 (see: 
https://softwaregarden.dev/en/posts/new-java/illegal-access-in-java-16).

A workaround for this bug is to start the jvm with  --illegal-access=permit

The setAccessible call is in the static initializer for: 
org.apache.geode.internal.stats50.VMStats50

It turns out the following works for calling processCpuTime:

{code:java}
        OperatingSystemMXBean osBean = 
ManagementFactory.getOperatingSystemMXBean();
        com.sun.management.OperatingSystemMXBean sunBean = 
(com.sun.management.OperatingSystemMXBean) osBean;
        System.out.println("getProcessCpuTime=" + sunBean.getProcessCpuTime());
{code}
so we can get rid of the setAccessible call




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

Reply via email to