Andrea Vettori created WW-5537: ---------------------------------- Summary: Memory Leak Key: WW-5537 URL: https://issues.apache.org/jira/browse/WW-5537 Project: Struts 2 Issue Type: Bug Components: Core Affects Versions: 6.7.0 Environment: JDK 17
Tomcat 9 Reporter: Andrea Vettori Struts is leaking memory when a WAR is hot deployed in Tomcat: for each hot deploy some classes remain in memory instead of being garbage collected. For big applications this causes OOM memory exceptions very quickly for Meatspace exhaustion because the entire class loader of the app is not released. For testing the HelloWorld app from struts-examples can be used. Deploy the war in tomcat as the only web app in the server. For each "reload" (from Tomcat manager) or simply copying the war file over the deployed one, taking a memory dump (with jmap) and looking at the content with a memory profiler (such as Eclipse MAT) shows that there is one ApplicationContext class for each hot deploy instead of just one. The problem is present in version 6.7.4-SNAPSHOT of Feb 28th. If the server can be restarted at each deploy the problem is obviously not a real problem. However if a tomcat instance contains more than one application being able to hot deploy a single one is very useful as it does not force all apps down for the server restart. -- This message was sent by Atlassian Jira (v8.20.10#820010)