JasperReport Server upgrade stop at 11% with java.lang.OutOfMemoryError: GC overhead limit exceeded
search cancel

JasperReport Server upgrade stop at 11% with java.lang.OutOfMemoryError: GC overhead limit exceeded

book

Article ID: 200290

calendar_today

Updated On:

Products

CA Spectrum CA Performance Management - Usage and Administration DX NetOps

Issue/Introduction


While running the CABI JasperReport Server upgrade, the wizard stops at 11 % with no error messages on the screen:


Environment

Release : 6.3.x, 6.4.x 

Component : Spectrum Reporting / CABI JasperReport

Cause

Check the installation logs CA_Business_Intelligence_Install_xx_xx_xxxx_xx_xx_xx.log for exception error: 'java.lang.OutOfMemoryError: GC overhead limit exceeded', which is normally caused by too much data consuming all available memory:

....
ZGResourceLoader::getZipFileForEntry()- $IA_PROJECT_DIR$/resources/images/billboard three.png in /tmp/install.dir.10806/InstallerData/installer.zip
Exception in thread "Thread-30" Execute Custom Code
java.lang.OutOfMemoryError: GC overhead limit exceeded
    at javax.swing.JComponent.getInsets(JComponent.java:1847)
    at 
....


The upgrade appears to stop while backing up CABI tomcat files, trying to get a list of files and hitting the exception "java.lang.OutOfMemoryError: GC overhead limit exceeded". There could be a lot of files in the tomcat directory, and InstallAnywhere is trying to store the list in memory and running out of memory.  

There may be many reports under CABI tomcat directory that is causing the problem while backing up tomcat directory during the upgrade.

To verify, can run this command from the CABI tomcat directory and see if there are a lot of files to backup:

ls -lR > /tmp/files.txt

Resolution

Do the following steps on the CABI/JasperReport server:

1. Edit the file /etc/security/limits.conf and add following entries at the bottom (before # End of file):
...
* soft nofile 65536
* hard nofile 65536

# End of file
...

2. Reopen Jasper console and run:
ulimit -Hn
to make sure that the parameters are set correctly. Should be equal to 65536 - e.g.:

# ulimit -Hn
65536

3. Run the upgrade again.