JIRA Windows Service Integrated with 64-bit Java Consumes All Allowed Memory and Never Releases it
Symptoms
On startup, JIRA quickly enters a state where the process consumes all available memory without ever releasing it. Additionally, the application stops responding to any new requests.
Diagnosis
- JIRA Standalone is installed on Windows and configured to used 64-bit Java Virtual Machine.
- The application's Windows Service is set up to use the Tomcat's Procrun 64-bit executables as per JRA-12965.
- Used Tomcat version is 6.0.20 - 6.0.23
- Problem is observed regardless of JVM memory configuration, load on the server or the size of the application.
Cause
The behavior is caused by incompatibility of the Procrun 64-bit executables with the used Tomcat version.
Resolution
The Procrun 64-bit executables version needs to be the same as Tomcat. Unfortunately, Tomcat developers didn't release the executables suitable for 6.0.20 - 6.0.23 Tomcat releases.
The problem can be resolved by:
- Deploying JIRA WAR in more recent Tomcat release (6.0.32 recommended), where the executables are provided - Installing JIRA WAR-EAR.
- Configure JIRA with 32-bit JAVA.
- Upgrade JIRA Standalone to the 4.3.1 (when released) which should bundle Tomcat 6.0.32 - JRA-22179.