-
Bug
-
Resolution: Fixed
-
P3
-
11, 12
-
b22
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8207088 | 12 | Per Liden | P3 | Resolved | Fixed | b03 |
JDK-8207438 | 11.0.2 | Per Liden | P3 | Resolved | Fixed | b01 |
JDK-8207548 | 11.0.1 | Per Liden | P3 | Resolved | Fixed | b02 |
ZGC currently assumes that there will be enough space available on the backing file system to hold the max heap size (-Xmx). However, this might not be true. For example, the backing filesystem might have been misconfigured or space on that filesystem might be used by some other process. In this situation, ZGC will try (and fail) to map more memory every time a new page needs to be allocated (assuming that request can't be satisfied by the page case). As a result, we fail to flush the page cache, which in turn means we throw a premature OOME and we continuously take the performance hit by making unnecessary fallocate() syscalls that will never succeed. We should instead detect this situation, flush the page cache and avoid making further fallocate() calls.
This issue has been seen now and then in various tests (e.g. RunThese30M and Kitchensink), typically on machines running older kernels without support for memfd_create(), where we fall back to using /dev/shm, which sometimes doesn't have enough space to hold the given max heap size (default tmpfs size is 50% of the RAM in the machine).
This issue has been seen now and then in various tests (e.g. RunThese30M and Kitchensink), typically on machines running older kernels without support for memfd_create(), where we fall back to using /dev/shm, which sometimes doesn't have enough space to hold the given max heap size (default tmpfs size is 50% of the RAM in the machine).
- backported by
-
JDK-8207088 ZGC: Premature OOME due to failure to expand backing file
-
- Resolved
-
-
JDK-8207438 ZGC: Premature OOME due to failure to expand backing file
-
- Resolved
-
-
JDK-8207548 ZGC: Premature OOME due to failure to expand backing file
-
- Resolved
-