- Startup
tomcat 9.0.27usingAdoptOpenJDK\jdk-11.0.6.10-hotspot - Deploy war
- Reload war
- Trigger Perform GC in Visual VM
Output of findleaks
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):
/spring-boot-starter
- Take memory dump: spring-boot-starter-reload.hprof
- Load dump in Eclipse Memory Analyzer
Eclipse memory analyzer:
- List objexts with incoming references and filter to
**org.apache.catalina.loader.ParallelWebappClassLoader**- 5 found, expecting 4: the reloaded spring-boot-starter.war, the host-manager, manager and ROOT
- One of the classloaders has a state of
DESTROYED - For destroyed classloaded:
- Path to GC roots > Excluce all phatom/weak/soft/etc references
A logback shutodwn hook appears to remain?
Repeat steps from above
Tomcat find leaks output:
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):
/spring-boot-complete-log4j2
EMA is similar story to with logback but the appears to be a Log4J2LoggingSystem shutdown hook this time.




