JVM Crash Due to Out Of Memory Condition on a ZFS File System
(Doc ID 1240333.1)
Last updated on NOVEMBER 08, 2020
Applies to:Java SE JDK and JRE - Version 1.4.2 and later
Oracle Solaris on SPARC (32-bit)
Oracle Solaris on SPARC (64-bit)
Oracle Solaris on x86-64 (64-bit)
Oracle Solaris on x86 (32-bit)
This is a crash of the JVM that produces an application core file plus a HotSpot fatal error log, hs_err_pid
This type of crash can come from any standalone java application.
***Checked for relevance on 08-JUL-2012***
***Checked for relevance on 29-DEC-2013***
A Java process crashes due to an out of memory (OOM) condition. The crash occurs on a zoned Solaris system which uses a ZFS type filesystem. It occurs only on one system, even though the application runs on another system that is not affected1.
Here is an example of the output from pstack running on the core file from the crash:
This stack trace reveals that the crash occurs when the the system has too little swap space. The JVM is trying to create a new Java thread and there is not enough native memory to create the stack for the Java thread.
The most important contributing factor to this problem is the use of ZFS type filesystem, which has a different filesystem caching strategy and mechanism compared to the traditional UFS filesystems.
Changes that cause additional memory usage, such as running additional processes, in any of the Solaris zones can trigger the issue.
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document