java.lang.OutOfMemoryError: PermGen space in Clarity logs

book

Article ID: 48872

calendar_today

Updated On:

Products

Clarity PPM SaaS Clarity PPM On Premise

Issue/Introduction

Having errors 500 or 503 while connecting and browsing Clarity application, when checking the logs we can see the following error message on any action:

Example:
ERROR 2020-05-17 08:35:00,639 [http-8080-2] union.service
(admin:16214839__96542C52-03F8-4296-B738-17F252BF49E0:bpm.processInstances)
rollback exception
java.lang.OutOfMemoryError: PermGen space

 

Environment

Release: Any, any Supported releases on Java
Component:

Resolution

The cause for this error is the fact that the PermGen memory was not enough for the current application usage. This can make the application running out of memory on certain portlets.

  • There is no specific user/action that is triggering this
  • PermGen memory is used by the JVM to hold loaded classes. Java heap memory is used to hold dynamically allocated memory
  • When a single user and action is responsible, then it is the heap memory that is impacted, a totally different error message is thrown(java.lang.OutOfMemoryError: Java heap space)
  • In this specific case (java.lang.OutOfMemoryError: PermGen ) the user or the users that were connected to the servers with this action are not relevant.
  1. Increase the MaxPermSize JVM parameter in properties.xml file in $CLARITY_HOME/config or in NSA/CSA - Server - Application
  2. The parameter will look like this, for example :
    jvmParameters="-Xms6144m -Xmx6144m -XX: MaxPermSize =128m "
  3. Please increase MaxPermSize to a higher binary number, i.e. 192, 256 etc. It will look like this:
    jvmParameters="-Xms6144m -Xmx6144m -XX: MaxPermSize =192m "
  4. Save, and restart all services.
  5. This will resolve the issue, and the errors will no longer appear in UI.

Please note that the default amount will depend on the exact Clarity version. This information will be available in the corresponding Installation Guide for the exact version.