Current Release

This documentation covers the latest release of VIVO, version 1.15.x.
If you are able to help contribute to this documentation, please contact vivo at lyrasis dot org
Looking for another version? See all documentation.

Check if there is a leak

There is a known issue with the ImageIO library used by VIVO for image upload that can cause Tomcat to report a memory leak if the VIVO application is undeployed or reloaded while Tomcat remains running (such as through the Tomcat manager application). This is because some ImageIO classes loaded into memory are not cleanly removed, and is not a problem with VIVO's application code. This issue can be avoided entirely by always stopping the Tomcat server when you need to redeploy VIVO. If, however, you must stop or start the VIVO application without stopping Tomcat itself, there is a simple fix. 

You can first check if you are affected by this issue by doing the following:

  1. Open the Tomcat manager and click to reload the VIVO application.
  2. After the reload has finished, click "Find leaks" in the Diagnostics section below.
  3. A message will appear: "The following web applications were stopped (reloaded, undeployed), but their
    classes from previous runs are still loaded in memory, thus causing a memory
    leak (use a profiler to confirm): vivo".

Mitigation

Configure JreMemoryLeakPreventionListener in conf/server.xml

<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" appContextProtection="true"/>


  • No labels