Long JVM Pauses after GC Log Rotation on Solaris
(Doc ID 2110707.1)
Last updated on APRIL 25, 2020
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)
On Solaris, Java SE 7 and 8 can experience extremely long pauses directly after GC log rotation.
Affects Java versions:
- 1.7.0_80 - 1.7.0_97
- 1.8.0_20 - 1.8.0_77
The problem can be reproduced with the following steps:
- 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.
- Add -XX:+PrintGCStoppedTime to track safepoint pauses.
- Trigger enough activity such that the GC log rotates.
- Watch a long safepoint pause directly after log rotation. The problem should be easily noticeable with about 500-1000 entries in /proc/self/map.
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