[jboss-jira] [JBoss JIRA] (WFLY-2593) Memory leak in JBoss AS / Hibernate JPA integration
Michael Kozak (JIRA)
jira-events at lists.jboss.org
Mon Dec 2 09:36:07 EST 2013
[ https://issues.jboss.org/browse/WFLY-2593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Kozak updated WFLY-2593:
--------------------------------
Steps to Reproduce:
Unpack a distribution of 7.1.1 community or EAP 6.2 beta. No changes are required to the configuration.
1. Deploy attached jmxp.ear.ear
2. Send a request to the application so a query gets executed:
curl http://localhost:8080/jmxp/jmxp
Expected output:
queries executed
Class is class org.hibernate.stat.internal.ConcurrentStatisticsImpl
3. Ask for queries:
./jboss-cli.sh --connect --command='/deployment=jmxp.ear.ear/subdeployment=jmxp.ejb.jar/subsystem=jpa/hibernate-persistence-unit=jmxp.ear.ear\/jmxp.ejb.jar\#fraudPU:read-children-resources(child-type=query-cache)'
First time the result is fine. On subsequent requests with jboss-cli.sh new elements will appear although no requests were issued to the application.
After a number of request (for example from a monitoring system) an OutOfMemoryException will occur.
was:
1. Deploy attached jmxp.ear.ear
2. Send a request to the application so a query gets executed:
curl http://localhost:8080/jmxp/jmxp
Expected output:
queries executed
Class is class org.hibernate.stat.internal.ConcurrentStatisticsImpl
3. Ask for queries:
./jboss-cli.sh --connect --command='/deployment=jmxp.ear.ear/subdeployment=jmxp.ejb.jar/subsystem=jpa/hibernate-persistence-unit=jmxp.ear.ear\/jmxp.ejb.jar\#fraudPU:read-children-resources(child-type=query-cache)'
First time the result is fine. On subsequent requests with jboss-cli.sh new elements will appear although no requests were issued to the application.
After a number of request (for example from a monitoring system) an OutOfMemoryException will occur.
> Memory leak in JBoss AS / Hibernate JPA integration
> ---------------------------------------------------
>
> Key: WFLY-2593
> URL: https://issues.jboss.org/browse/WFLY-2593
> Project: WildFly
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JPA / Hibernate
> Affects Versions: No Release
> Environment: JBoss 7.1.1
> JBoss EAP 6.2 beta
> Reporter: Michael Kozak
> Assignee: Scott Marlow
> Priority: Critical
> Fix For: No Release
>
> Attachments: jmxp.ear.ear, jmxp.tar.gz
>
>
> The leak exists in AS integration code with Hibernate JPA.
> When a persistence unit is deployed which has 2nd level cache and statistics enabled each query for "query-cache" elements produces new elements.
> The issue lies in org.jboss.as.jpa.hibernate4.management.HibernateStatisticsResource. getQueryNames() method requests query names from Hibernate and applies QueryName.queryName(query).getDisplayName() to change names. Then for all queries hasQuery() is called which invokes stats.getQueryStatistics(). Within this method Hibernate creates a new object to track the statistics because the name is not found.
> Possible solution is to reverse the work done by getDisplayName() but I'm not sure if it's the right thing to do.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list