JBoss application classloaders leak because of unclosed EJBReceiverContexts and EJBClientContexts
Environment
- JBoss Enterprise Application Platform (EAP) 6.x
Issue
- Classloaders for our application leak across redeploys leading to a PermGen OOME when the application defines a client context in its jboss-ejb-client.xml:
<client-context>
<ejb-receivers>
<remoting-ejb-receiver outbound-connection-ref="remote-ejb-connection" />
</ejb-receivers>
</client-context>
Resolution
- Await a forthcoming fix in a later release
Diagnostic Steps
- Identify any application classloaders in your heap dump with the below Eclipse MAT OQL and check if they are persisted by EJB receiver and client contexts:
SELECT module.identifier.name.value.toString() FROM org.jboss.modules.ModuleClassLoader WHERE (module.identifier.name.value.toString() LIKE "deployment.*")
Components
Category
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.