Symbolic Link in JIRA Home during upgrading using Installer will throw 'java.lang.OutOfMemoryError: GC overhead limit exceeded'
When an installer is used to perform an upgrade in Linux, the default process is to check for local modifications. However, when you have symbolic link "hidden" in your JIRA Home Directory, you will hit into GC overhead limit error.
The following appears on the terminal:
Checking for local modifications. An error occurred: java.lang.OutOfMemoryError: GC overhead limit exceeded Error log: /home/user/install4jError576969599009603384.log java.lang.OutOfMemoryError: GC overhead limit exceeded at java.lang.StringCoding$StringEncoder.encode(Unknown Source) at java.lang.StringCoding.encode(Unknown Source) at java.lang.String.getBytes(Unknown Source) at java.io.UnixFileSystem.getBooleanAttributes0(Native Method) at java.io.UnixFileSystem.getBooleanAttributes(Unknown Source) at java.io.File.isDirectory(Unknown Source) at com.atlassian.modzdetector.ModzDetector.getAddedFiles(ModzDetector.java:182) at com.atlassian.modzdetector.ModzDetector.getAddedFiles(ModzDetector.java:184)
Check for any symbolic link hidden in the JIRA Home directory, use the below command to locate the symbolic link:
sudo find -type l
There are two current known causes for this:
- Symbolic link might be created when you are using other systems alongside JIRA. For example, Mercurial SCM.
- Recursive checking on symbolic link will use up all memory allocated to the instance and thus throws the above error.
- Stop the installer.
Locate all symbolic link by running the following command:
sudo find -type l
Remove all of them.
Restart the installer.
Symlink might be hidden in any folders in JIRA Home. Looking for it manually would take up more time. Thus, running the find command is preferred.