Long JVM Pauses After GC Log Rotation on Solaris

(Doc ID 2110707.1)

Last updated on APRIL 02, 2016

Applies to:

Java SE JDK and JRE - Version 7 to 8
Oracle Solaris on SPARC (64-bit)
Oracle Solaris on SPARC (32-bit)
Oracle Solaris on x86-64 (64-bit)
Oracle Solaris on x86 (32-bit)

Symptoms

On Solaris, Java SE 7 and 8 can experience extremely long pauses directly after GC log rotation.

Affects Java versions:


The problem can be reproduced with the following steps:

  1. Start any Java process that creates many entries in /proc/self/map and uses GC log rotation.  To create a Java process with many entries in /proc/self/map, the application can have many threads and/or open many Jar files with a classloader.
  2. Add -XX:+PrintGCStoppedTime to track safepoint pauses.
  3. Trigger enough activity such that the GC log rotates.
  4. Watch a long safepoint pause directly after log rotation. The problem should be easily noticeable with about 500-1000 entries in /proc/self/map.
 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms