RFR: 8257230: assert(InitialHeapSize >= MinHeapSize) failed: Ergonomics decided on incompatible initial and minimum heap sizes
Jie Fu
jiefu at openjdk.java.net
Sat Nov 28 13:14:03 UTC 2020
Hi all,
Ergonomics for InitialHeapSize can be broken if the memory resource is limited by the administrator.
For example, this assert [1] fired on our testing boxes.
It can be reproduced by the following two steps on Linux-64:
1) ulimit -v 8388608
2) java -XX:MinHeapSize=5g -version
The reason was that limit_by_allocatable_memory() [2] returns a value less than MinHeapSize.
One more important fact is that this bug can be more common on Linux-32 systems.
Since the virtual memory is limited to 3800M [3] on Linux-32, it can be always reproduced when MinHeapSize > 1900M.
Testing:
- tier1 ~ tier3 on Linux/x64
Thanks.
Best regards,
Jie
[1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/gc/shared/gcArguments.cpp#L96
[2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/runtime/arguments.cpp#L1907
[3] https://github.com/openjdk/jdk/blob/master/src/hotspot/os/posix/os_posix.cpp#L567
-------------
Commit messages:
- 8257230: assert(InitialHeapSize >= MinHeapSize) failed: Ergonomics decided on incompatible initial and minimum heap sizes
Changes: https://git.openjdk.java.net/jdk/pull/1492/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1492&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8257230
Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
Patch: https://git.openjdk.java.net/jdk/pull/1492.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/1492/head:pull/1492
PR: https://git.openjdk.java.net/jdk/pull/1492
More information about the hotspot-runtime-dev
mailing list