Garbage Collection Log Settings for Jira when using Java Version 11
Platform Notice: Server and Data Center Only - This article only applies to Atlassian products on the server and data center platforms.
Problem
Trying to run JIRA leads to errors like
-XX:+PrintGCDateStamps --> Unrecognized VM option 'PrintGCDateStamps'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Diagnosis
Environment
AdoptOpen JDK 11
Cause
Starting with JIRA 8.2 we are supporting Java 8 and Java 11. There are significant differences in the Garbage Collection Log Settings between these 2 versions. Trying to run JIRA on Java 11 with the old settings will lead to errors like mentioned above.
See 43 GC logging flags removed from Java 9 for more details.
When migrating from a setup with Java 8 to another with Java 11 the Javaflags have been taken over.
Resolution
The following Java flags are no longer supported in Java 9 and upwards, as the Unified JVM Logging has been introduced
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCCause -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M -Xloggc:<PATH_TO_GC_LOGS>
You must remove these flags when running JIRA with Java 11, otherwise JIRA will fail to start. Make sure to add the one below to keep logging GC activity.
-Xlog:gc*:file=<PATH_TO_GC_LOGS>:time,uptime:filecount=5,filesize=20M
Update: Failed to recognize file format in GCViewer
If you are analyzing the GC logs on GCViewer, you might run into this error :
Caused by: java.io.IOException: Failed to recognize file format.
This is due to - JRASERVER-71420Getting issue details... STATUS . To work this around add tags and level to the configuration :
-Xlog:gc*:file=<PATH_TO_GC_LOGS>:tags,time,uptime,level:filecount=5,filesize=20M