[ 
https://issues.apache.org/jira/browse/GEODE-9476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Darrel Schneider resolved GEODE-9476.
-------------------------------------
    Fix Version/s: 1.15.0
       Resolution: Fixed

> 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
>            Priority: Major
>              Labels: Java16, Java17
>             Fix For: 1.15.0
>
>
> 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.20.7#820007)

Reply via email to