My Oracle Support Banner

JVM Crash Due to Out Of Memory Condition on a ZFS File System (Doc ID 1240333.1)

Last updated on APRIL 13, 2023

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.log (hs_err log).
This type of crash can come from any standalone java application. *** ***

Symptoms

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.

Changes

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.

Cause

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
Symptoms
Changes
Cause
Solution
References

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.