Bug 900427 (JBPAPP6-967)
| Summary: | Memory leaks when deploying message driven beans | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [JBoss] JBoss Enterprise Application Platform 6 | Reporter: | Jan Martiska <jmartisk> | ||||||
| Component: | JMS | Assignee: | Jeff Mesnil <jmesnil> | ||||||
| Status: | CLOSED NEXTRELEASE | QA Contact: | |||||||
| Severity: | high | Docs Contact: | |||||||
| Priority: | high | ||||||||
| Version: | 6.0.0 | CC: | bgeorges, brian.stansberry, clebert.suconic, dimitris, jmartisk, jmesnil, jpai, mharvey, rajesh.rajasekaran | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | EAP 6.0.1 | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| URL: | http://jira.jboss.org/jira/browse/JBPAPP6-967 | ||||||||
| Whiteboard: | eap601candidate | ||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2012-11-06 05:50:44 UTC | Type: | Bug | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Attachments: |
|
||||||||
|
Description
Jan Martiska
2012-05-14 10:58:25 UTC
Screenshot - threads emerging after test Attachment: Added: threads.png Screenshot - memory footprint graph Attachment: Added: memoryleak.png Can you take a heap dump when you "measure START memory footprint" and "measure END memory footprint"? thread&heap dumps added http://download.eng.brq.redhat.com/scratch/jmartisk/jbpapp9005/ Jan, I have a 403 error when I try to download the heapdump_{before, after} files
Oh yeah, sorry. It should be fixed now. I have analyzed your dumps and reproduce it on a few deployments/undeployments with the helloworld-mdb quickstart
There seems to be a leakage on the client session factories created by HornetQ Resource Adapter during the MDB deployment that are not properly clean up on the undeployment.
Using jmap dumps and jhat, I collected these figures:
{noformat}
0) AS7 boot:
1 instance of ClientSessionImpl (CSI) (used by HornetXAResourceWrapper)
2 instances of ClientSessionFactoryImpl (CSFI) (1 for HornetQXAResourceWrapper & 1 for the in-vn connector)
1) 1st MDB deployment
16 CSI ( 1 + 15 new created by HornetQ RA (corresponds to MAX_SESSION))
17 CSFI (15 new for each session)
2) 1st MDB undeployment
16 CSI
17 CSFI
=> nothing has been cleaned up... not sure it is normal here...
3) 2nd MDB deployment
16 CSI
32 CSFI (15 new instances have been created by the RA but the others instances are still there
4) 2nd MDB deployment
16 CSI
32 CSFI
=> nothing cleaned up
5) 3rd MDB deployment
16 CSI
47 CSFI (15 new instances again)
6) 3rd MDB undeployment
16 CSI
47 CSFI
7) 7 deployment/undeployment cycles
106 CSI => did not understand yet what it was bumped up to 16... race conditions?
152 CSFI (2 + 15 x 10)
=> at each deployment, we create 15 CSFI, none are cleaned up at undeployment
{noformat}
I continue to investigate the issue and find it in the HornetQ RA
Link: Added: This issue depends HORNETQ-927 the leak occurs in HornetQ RA code We want to fix this, but not right now. We don't want to risk regression and given the scenario "deploy/undeploy application 1000 times", it would be unlikely to hit this problem in a "production" environment any time soon. Target 6.0.1. If there isn't any other leaks, I have just made a PR: https://github.com/jbossas/jboss-as/pull/2319 I meant: if there aren't any other leaks, you may resolve this issue I tested locally that the memory leaks does not occur with HornetQ 2.2.17.Final Labels: Added: eap6_need_triage This is not a blocker for EAP 6. This is not a realistic use case. Release Notes Docs Status: Added: Documented as Known Issue
Release Notes Text: Added: Memory leaks have occurred during testing of message-driven beans (MDBs). After 1000 deployments of a quickstart application, the memory footprint of the application server was increased by 100 or more megabytes. The performance differed depending on which JVM was used. The highest memory footprint was seen with the 64-bit Oracle JVM. The leakage occurs in the client session factories created by the HornetQ resource adapter during MDB deployment, but not cleaned up properly during undeployment.
This memory leak will be fixed by a future upgrade to the HornetQ component. However, the testing scenario is not considered a risk for a production environment.
Labels: Removed: eap6_need_triage Added: eap601candidate A later version of HornetQ (2.2.19.Final) has gone into AS7 upstream with the fix for this issue Tested with EAP 6.0.1.ER2. No memory leaks found. Good job, thanks! Release Notes Text: Removed: Memory leaks have occurred during testing of message-driven beans (MDBs). After 1000 deployments of a quickstart application, the memory footprint of the application server was increased by 100 or more megabytes. The performance differed depending on which JVM was used. The highest memory footprint was seen with the 64-bit Oracle JVM. The leakage occurs in the client session factories created by the HornetQ resource adapter during MDB deployment, but not cleaned up properly during undeployment.
This memory leak will be fixed by a future upgrade to the HornetQ component. However, the testing scenario is not considered a risk for a production environment. Added: A small memory leak was identified in the HornetQ component when deploying and undeploying message-driven beans. This was caused by the client session factories created by the HornetQ resource adapter during MDB deployment not being cleaned up properly during undeployment. The HornetQ component has been updated to resolve this issue. This memory leak no longer occurs.
Release Notes Docs Status: Removed: Documented as Known Issue Added: Documented as Resolved Issue Writer: Added: Darrin Release Notes Docs Status: Removed: Documented as Resolved Issue Writer: Removed: Darrin Release Notes Text: Removed: A small memory leak was identified in the HornetQ component when deploying and undeploying message-driven beans. This was caused by the client session factories created by the HornetQ resource adapter during MDB deployment not being cleaned up properly during undeployment. The HornetQ component has been updated to resolve this issue. This memory leak no longer occurs. Docs QE Status: Removed: NEW |