As part of looking at
WFLY-12671, I found that org.jboss.jca.core.connectionmanager.pool.idle.IdleRemover$IdleRemoverRunner is leaking the application classloader (after undeployment) via org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory originalTCCL being kept after undeployment.
See attached jcaleakmarlow.txt (also attached to
WFLY-12671), which shows the leak.
I tried waiting a few minutes after undeployment and the leak was still there. I also tried an even simpler app (2lc.jar) and still there is a leak. I also attached the heapdump (java_pid12802.0001.zip)
- Deploy simple (no app code will be executed) 2lc.jar app.
- Undeploy by doing "rm 2lc.jar.deployed" in wildfly/standalone/deployments
- Look at memory with MAT or other memory leak tool.