RFR: 8226575: OperatingSystemMXBean should be made container aware
Mandy Chung
mandy.chung at oracle.com
Wed Dec 4 00:10:13 UTC 2019
On 12/3/19 11:42 AM, Daniil Titov wrote:
> Please review the change that makes OperatingSystemMXBean methods return container specific informationrather than the host based data.
>
> The webrev also takes into account the case when java.security.AccessControlException exception is thrown
> during the initialization of the container subsystem ( e.g. when java.policy doesn’t grant "read" access to "/proc/self/mountinfo" file).
Instead of failing to access /proc/self/mountinfo, I expect this to wrap
the call with doPrivileged so that it can report the metrics independent
of the security policy. The jdk default security policy should grant
proper permission to do so.
>
> CSR for the spec changes [3] is approved.
>
> Testing: Mach5 tiers1, tiers2, tiers3, tier4, tier5 (including open/test/hotspot/jtreg/containers/docker), and tier6 tests passed .
>
> [1] Webrev: http://cr.openjdk.java.net/~dtitov/8226575/webrev.02/
> [2] Jira issue :https://bugs.openjdk.java.net/browse/JDK-8226575
> [3] CSR https://bugs.openjdk.java.net/browse/JDK-8228428
>
>
src/java.base/linux/classes/jdk/internal/platform/cgroupv1/Metrics.java
this should wrap the security-sensitive operations with
doPrivileged. jdk.management is trusted and it has all permissions.
src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c
Formatting nit: line 346-355: JDK native source uses 4-space
identation convention. A space is missing between "if" and "(".
src/jdk.management/unix/classes/com/sun/management/internal/OperatingSystemImpl.java
59 if (limit >= 0 && memLimit >= 0) {
60 return limit - memLimit;
61 }
Under what circumstance that limit or memLimit is < 0? It fallbacks to
return the system's total swap space size - this is not really what it
should report. Is it worth specifying this case?Similarly,
getFreeMemorySize and getTotalMemorySize and getCpuLoad.
getFreeSwapSpaceSize retry for a few times. What special about this
method but not others like getFreeMemorySize?
src/jdk.management/windows/classes/com/sun/management/internal/OperatingSystemImpl.java
There is no strong need to make the deprecated methods as default
methods. If they were default methods, they only need to be implemented
once as opposed to in all OS-specific implementations.
CheckOperatingSystemMXBean.java
System.out.println(String.format(...)) can simply be replaced with
System.out.format.
Mandy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20191203/b03b18c5/attachment.html>
More information about the serviceability-dev
mailing list