RFR(xxs): 8206243: java -XshowSettings fails if memory.limit_in_bytes overflows LONG.max

David Holmes david.holmes at oracle.com
Tue Jul 3 08:37:46 UTC 2018


Hi Thomas,

This seems okay.

Minor nit:

if(bigInt

Please add a space after 'if'

Thanks,
David

On 3/07/2018 6:20 PM, Thomas Stüfe wrote:
> Hi all,
> 
> may I please have reviews for this small fix.
> 
> https://bugs.openjdk.java.net/browse/JDK-8206243
> http://cr.openjdk.java.net/~stuefe/webrevs/8206243-java-xshowsettings-fails-for-large-values-of-memory-limit_in_bytes/webrev.00/webrev/
> 
> 
> On some Linux kernels, the unlimited value of memory.limit_in_bytes is
> returned as ULONG_MAX, not LONG_MAX.
> 
> - .../nightly $ cat //sys/fs/cgroup/memory/memory.limit_in_bytes
> 18446744073709551615
> 
> In those cases, java -XshowSettings will fail:
> 
> java -XshowSettings
> ....
> Operating System Metrics:
>      Provider: cgroupv1
>      Effective CPU Count: 8
>      CPU Period: 100000us
>      CPU Quota: -1
>      CPU Shares: -1
>      List of Processors, 8 total:
>      0 1 2 3 4 5 6 7
>      List of Effective Processors, 0 total:
>          List of Memory Nodes, 1 total:
>      0
>      List of Available Memory Nodes, 0 total:
>          CPUSet Memory Pressure Enabled: false
> Exception in thread "main" java.lang.NumberFormatException: For input
> string: "18446744073709551615"
>          at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
>          at java.base/java.lang.Long.parseLong(Long.java:692)
>          at java.base/java.lang.Long.parseLong(Long.java:817)
>          at java.base/jdk.internal.platform.cgroupv1.SubSystem.getLongValue(SubSystem.java:106)
>          at java.base/jdk.internal.platform.cgroupv1.Metrics.getMemoryLimit(Metrics.java:374)
>          at java.base/sun.launcher.LauncherHelper.printSystemMetrics(LauncherHelper.java:385)
> 
> 
> Thank you,
> 
> Thomas
> 


More information about the serviceability-dev mailing list