RFR: (S): JDK-8200613: SA: jstack throws UnmappedAddressException with a CDS core file
Ioi Lam
ioi.lam at oracle.com
Thu Oct 11 05:25:29 UTC 2018
Hi Jini,
The changes looks good to me.
Have you tested this on MacOS? CDS heap support is also enabled on
MacOS. See macros.hpp:
#if INCLUDE_CDS && INCLUDE_G1GC && defined(_LP64) && !defined(_WINDOWS)
#define INCLUDE_CDS_JAVA_HEAP 1
Also, besides CDS, do we know how often other files will be mmaped with
MAP_PRIVATE? Will users get huge core files because CDS is enabled? In
JDK 12, CDS will be enabled by default (see JDK-8202951), so all users
will be affected by the following line:
if (UseSharedSpaces) {
set_coredump_filter(FILE_BACKED_PVT_BIT);
}
Maybe you can run an big app such as Eclipse, trigger a core dump, and
compare the size of the core file before/after this change?
Thanks
- Ioi
if FILE_BACKED_PVT_BIT is set,
On 10/8/18 11:01 PM, Jini George wrote:
> Hello!
>
> [Including runtime-dev since the changes are in runtime code]
>
> Requesting reviews for:
>
> Webrev: http://cr.openjdk.java.net/~jgeorge/8200613/webrev.01/
> BugID: https://bugs.openjdk.java.net/browse/JDK-8200613
>
> Issue: jhsdb jstack would throw an UnmappedAddressException with a
> core file generated from a CDS enabled java process. This is seen only
> with Linux and with G1GC, while trying to read in data from the shared
> strings region (the closed archive heap space). This region (which is
> a file backed private memory region) is not dumped into the corefile
> for Linux. This, being a heap region (and therefore being a read-write
> region) is also not read in from the classes.jsa file in SA since only
> the read only regions are read in while processing the core file. (The
> expectation being that the read write regions are in the core file).
>
> Proposed solution: The proposed solution is to have the
> coredump_filter value corresponding to the CDS process to include bit
> 2 (file-backed private memory), so that the file-backed private memory
> region also gets dumped into the corefile. The proposed fix is in
> src/hotspot/os/linux/os_linux.cpp.
>
> Thanks,
> Jini.
>
More information about the hotspot-runtime-dev
mailing list