You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Owen Nichols (Jira)" <ji...@apache.org> on 2022/06/22 20:47:04 UTC

[jira] [Closed] (GEODE-9476) VMStats processCpuTime, fdLimit, and fdsOpen will always be zero on java 16 and later

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

Owen Nichols closed GEODE-9476.
-------------------------------

> 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)