[jboss-user] [EJB3] - way too many SLSB instances eventually cause heap to run out

Ian Springer do-not-reply at jboss.com
Tue Feb 8 11:01:22 EST 2011


Ian Springer [http://community.jboss.org/people/ips] created the discussion

"way too many SLSB instances eventually cause heap to run out"

To view the discussion, visit: http://community.jboss.org/message/586260#586260

--------------------------------------------------------------
In the RHQ 3.0 server, we use JBossAS 4.2.3's bundled EJB3. A user has reported seeing way too many SLSB instances slowly building up in heap and eventually causing the server to run out of heap (see his post from the rhq-devel list below). Can anyone shed some light on what could be causing it? Is it a bug in the EJB container, a bug in our application code, or just some configuration setting we need to adjust?

Thanks,
Ian

-----

> Following up a post from about a month ago.  We were seeing a    persistent slow memory leak in the rhq server in tenured gen space    that eventually led to an out of memory exception after running the    server for about a week.  I captured a heap dump and found hundreds    of thousands of stateless session beans in memory.  Here's a    snapshot from my profiler of a table of classes with greatest number    of instances.  
> 
> 
> 
>                   | Name           | Objects           | Shallow Size           | Retained Size         |
>           | java.util.HashMap$Entry           | 1939755           | 93108240           | 189082696         |
>           | java.util.HashMap$Entry[]           | 1090957           | 167796768           | 340273520         |
>           | java.util.HashMap           | 1084265           | 69392960           | 408521632         |
>           | java.util.LinkedList$Entry           | 860965           | 34438600           | 727956072         |
>           | org.jboss.ejb3.BaseSessionContext           | 856281           | 34251240           | 34251240         |
>           | org.rhq.enterprise.server.authz.RequiredPermissionsInterceptor           | 856281           | 13700496           | 13700496         |
>           | org.rhq.enterprise.server.common.TransactionInterruptInterceptor           | 856281           | 13700496           | 13700496         |
>           | org.jboss.ejb3.stateless.StatelessBeanContext           | 856265           | 68501200           | 490959040         |
>           | java.lang.String           | 429025           | 17161000           | 48902064         |
>           | char[]           | 379454           | 37897872           | 37897872         |
>           | java.lang.Integer           | 171633           | 4119192           | 4119192         |
>           | java.util.Hashtable$Entry           | 157623           | 7565904           | 34980432         |
>           | java.util.TreeMap$Entry           | 105496           | 6751744           | 14950816         |
>           | java.lang.String[]           | 98401           | 4340480           | 6555536         |
>           | org.rhq.enterprise.server.auth.SubjectManagerBean           | 91116           | 6560352           | 49567104         |
>           | org.rhq.enterprise.server.auth.TemporarySessionPasswordGenerator           | 91116           | 3644640           | 43006752         |
>           | org.rhq.enterprise.server.authz.AuthorizationManagerBean           | 91115           | 2186760           | 2186760         |
>           | org.rhq.enterprise.server.alert.AlertConditionManagerBean           | 91084           | 2914688           | 2914688         |
>           | org.rhq.enterprise.server.alert.AlertManagerBean           | 90914           | 9455056           | 9455056         |
>           | org.rhq.enterprise.server.alert.AlertDefinitionManagerBean           | 90911           | 4363728           | 4363728         |
>           | org.rhq.enterprise.server.alert.AlertConditionLogManagerBean           | 90903           | 5090568           | 5090568         |
>           | org.rhq.enterprise.server.alert.CachedConditionManagerBean           | 90903           | 4363344           | 4363344         |
>           | org.rhq.enterprise.server.alert.AlertDampeningManagerBean           | 90903           | 3636120           | 3636120         |
>           | org.jboss.security.SecurityAssociation$SubjectContext           | 49229           | 2362992           | 2362992         |
>           | org.rhq.enterprise.server.cloud.instance.ServerManagerBean           | 39354           | 3463152           | 3463152         |
>           | org.rhq.enterprise.server.cloud.CloudManagerBean           | 39354           | 2833488           | 2833488         |
>     
>     Here are the merged paths from the SubjectManagerBean to GCRoot:
> 
> 
>                  | <All the objects>         |
>           | org.jboss.ejb3.stateless.StatelessBeanContext         |
>           | java.util.LinkedList$Entry         |
>           | java.util.LinkedList$Entry         |
>           | java.util.LinkedList         |
>           | org.jboss.ejb3.InfinitePool         |
>           | org.jboss.ejb3.ThreadlocalPool         |
>           | org.jboss.ejb3.stateless.StatelessContainer         |
>     
>     All the other manager beans have similar merged paths.  So I started    to wonder why there were so many slsb's in the ThreadlocalPools and    after some digging found this    ( http://community.jboss.org/message/363520#363520 http://community.jboss.org/message/363520) thread that sort of    describes what I'm seeing.  I still don't know why it's happening    but it gave me something to try.  I changed the Stateless Bean pool    class in ejb3-interceptors-aop.xml from ThreadlocalPool to    StrictMaxPool.  Now when I run the server and watch it with my    profiler I see at max 3 SubjectManagerBeans in memory.  Same appears    to be true for other slsb's.  This isn't a solution to the problem    but I'm hoping someone can shed light on what's really going on.  I    would be happy to upload the heap dump to somewhere public but it's    almost a GB in size.  
> 
>     Bala Nair
>     SeaChange International
>
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/586260#586260]

Start a new discussion in EJB3 at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20110208/c1a8a74f/attachment-0001.html 


More information about the jboss-user mailing list