[jboss-jira] [JBoss JIRA] (AS7-4675) Memory leak when reading EJB 2.1 CMP EntityBeans

Frederico Francisco (JIRA) jira-events at lists.jboss.org
Wed Aug 21 03:56:26 EDT 2013


    [ https://issues.jboss.org/browse/AS7-4675?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12798116#comment-12798116 ] 

Frederico Francisco commented on AS7-4675:
------------------------------------------

This is marked as resolved, and the fix is indeed in 7.2.0.Final, but I am hitting this big time. I am calling a session bean (tx required) that fetches a lot of data, 45000 rows, using read-ahead. In less than a minute my old generation is exhausted and begins a cycle of Full GCs. I tried running on EAP 6.1.0, the result was the same.

I did a heapdump and debugged the code. From what I can see there is an enormous amount of interceptors being created, for every getter I call on my bean, that hold the memory for the duration of the transaction so no space can be collected.

Why are so many interceptors being created? Can anyone give me any pointers?


OS: Fedora 18 (x86_64)
Jboss: 7.2.0.Final





                
> Memory leak when reading EJB 2.1 CMP EntityBeans
> ------------------------------------------------
>
>                 Key: AS7-4675
>                 URL: https://issues.jboss.org/browse/AS7-4675
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: EJB
>    Affects Versions: 7.1.1.Final
>         Environment: Windows 7 Pro SP1 (64bit);  JDK 1.6.0_31 (64bit); Oracle Database 11g Release 11.1.0.6.0 - 64bit Production; AS71.1Final / AS71.2 latest build
>            Reporter: Klaus Benary
>            Assignee: Stuart Douglas
>            Priority: Critical
>             Fix For: 7.1.2.Final (EAP)
>
>         Attachments: JCTest-maven.zip, JCTest.zip
>
>
> After reading 12000 EJB 2.1 EntityBeans in a test application there are about 5 million Interceptor[] arrays firmely bound in the heap. A heap dump shows this as a typical reference chain:
> GC Root: ServiceContainerImpl$ServiceThread
> ServiceContainerImpl$ServiceThread.container = ServiceContainerImpl
>  ServiceContainerImpl.registry = UnlockedReadHashMap
>   UnlockedReadHashMap.table = AtomicReferenceArray
>    AtomicReferenceArray.array = Object[16384]
>     Object[6209] = UnlockedReadHashMap$Item[3]
>      UnlockedReadHashMap$Item[1] = UnlockedReadHashMap$Item
>        UnlockedReadHashMap$Item.value = ServiceRegistrationImpl
>         ServiceRegistrationImpl.instance = ServiceControllerImpl
>          ServiceControllerImpl.serviceValue = ImmediateValue
>           ImmediateValue.value = TimedObjectInvokerImpl
>             TimedObjectInvokerImpl.timeoutInterceptors = HashMap
>               HashMap.table = HashMap$Entry[128]
>                HashMap$Entry[123] = HashMap$Entry
>                 HashMap$Entry.value = ChainedInterceptor
>                   ChainedInterceptor.interceptors = Arrays$ArrayList
>                    Arrays$ArrayList.a = Interceptor[6]
> The number of bound objects keeps growing when reading more EntityBeans - even wehn reading the same beans again.
> Even after undeploy of the application the 

--
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