[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