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)