users@glassfish.java.net

Re: All request processing threads are busy and connections count increasing

From: Jeanfrancois Arcand <Jeanfrancois.Arcand_at_Sun.COM>
Date: Mon, 23 Mar 2009 15:34:04 +0100

Salut,

Jagadish Prasath Ramu wrote:
>
> On Mon, 2009-03-23 at 15:01 +0100, Jeanfrancois Arcand wrote:
>> Salut,
>>
>> Jagadish Prasath Ramu wrote:
>>> Hi Jean-Francois,
>>>
>>> I do not suspect this as related to connection pool. This is an after
>>> effect.
>> I'm not following you. Have you looked at the current thread dump? 100%
>> of the time they all lock on the code.
> Yes, I did.
> There are 10 httpSSL threads
> httpSSLWorkerThread-8080- (0-9)
> of which 3 are w.r.t pool and 7 are not related to pool and are not
> dependent on pool. I do not see that as an issue.
>
> @osmanizbat :
> However, you can try the steps as indicated in the thread below (end of
> the thread)
> http://forums.java.net/jive/thread.jspa?threadID=58379&start=10&tstart=0
> and let us know the results.
>
> Also, if you are using v2.1, you can enable the diagnostic flag as
> indicated the following issue
> https://glassfish.dev.java.net/issues/show_bug.cgi?id=6624
>
> More responses inline,
>
>>> As I have posted previouly, please refer the other two thread dumps on
>>> different occasions (different dates) where it was hung that does not
>>> have connection pool.

It is either the one I added or the one below.


>>>
>>> 1)
>>> "All Grizzly threads are definitely locked. I'm surprised to see you
>>> have
>>> almost 1000 grizzly threads for your http listener since the default is
>>> 5:"
>>> http://forums.java.net/jive/thread.jspa?messageID=334999
>> This is the normal behavior? Threads are just waiting for work :)
> The user is stating that it is hung.

If you start GF you will get the same exact dump FYI.


  Also, please refer the other stack
> trace (2) below.

Right, that one show a Toplink deadlock. So it is bd related :-)

> "httpSSLWorkerThread-8080-18" daemon prio=10 tid=0x00002aab0495ac00 nid=0x4f29 waiting on condition [0x0000000047aeb000..0x0000000047aecc10]
> java.lang.Thread.State: TIMED_WAITING (sleeping)
> at java.lang.Thread.sleep(Native Method)
> at oracle.toplink.essentials.internal.helper.ConcurrencyManager.releaseDeferredLock(ConcurrencyManager.java:429)
> at oracle.toplink.essentials.internal.identitymaps.CacheKey.releaseDeferredLock(CacheKey.java:373)
> at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:614)
> at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.buildWorkingCopyCloneNormally(ObjectBuilder.java:451)
> at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.buildObjectInUnitOfWork(ObjectBuilder.java:421)
> at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:387)
> at oracle.toplink.essentials.queryframework.ReportQueryResult.processItem(ReportQueryResult.java:220)
> at oracle.toplink.essentials.queryframework.ReportQueryResult.buildResult(ReportQueryResult.java:182)
> at oracle.toplink.essentials.queryframework.ReportQueryResult.<init>(ReportQueryResult.java:98)
> at oracle.toplink.essentials.queryframework.ReportQuery.buildObject(ReportQuery.java:594)
> at oracle.toplink.essentials.queryframework.ReportQuery.buildObjects(ReportQuery.java:643)
> at oracle.toplink.essentials.queryframework.ReportQuery.executeDatabaseQuery(ReportQuery.java:804)
> at oracle.toplink.essentials.queryframework.DatabaseQuery.execute(DatabaseQuery.java:628)
> at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:692)
> at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:746)
> at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2248)
> at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:952)
> at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:924)
> at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:367)
> at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:508)
> at beans.DataBean.getItem(DataBean.java:138)
> at beans.DataBean.getSimilarItems(DataBean.java:170)
> at sun.reflect.GeneratedMethodAccessor927.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011)
> at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175)
> at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2920)
> at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4011)
> at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197)
> at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83)
> at $Proxy167.getSimilarItems(Unknown Source)
> at servlets.FooServlet.pmain(FooServlet.java:398)
> at servlets.FooServlet.processRequest(FooServlet.java:124)
> at servlets.FooServlet.doGet(FooServlet.java:614)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
> at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.j

Thanks!

-- Jeanfrancois



>
> @osmanizbat : can you confirm ?
>
> Thanks,
> -Jagadish
>
>> Thanks
>>
>> -- Jeanfrancois
>>
>>
>>> 2)
>>> http://forums.java.net/jive/servlet/JiveServlet/download/56-59168-338326-8122/glassfish-20032009.tdump
>>> http://forums.java.net/jive/servlet/JiveServlet/download/56-58413-334999-7799/thread_dump_04032009.txt.tar.gz
>>>
>>> that does not have connection pool involved.
>>>
>>> Thanks,
>>> -Jagadish
>>>
>>>
>>>
>>>
>>>
>>> On Mon, 2009-03-23 at 14:20 +0100, Jeanfrancois Arcand wrote:
>>>> Salut,
>>>>
>>>> yes :
>>>>
>>>>> "httpSSLWorkerThread-8080-9" daemon prio=10 tid=0x00000000477aec00 nid=0x1870 waiting for monitor entry [0x0000000042327000..0x0000000042329b10]
>>>>> java.lang.Thread.State: BLOCKED (on object monitor)
>>>>> at com.sun.enterprise.resource.AbstractResourcePool.startConnectionLeakTracing(AbstractResourcePool.java:309)
>>>>> - locked <0x00002aaabc809058> (a java.lang.Object)
>>>>> at com.sun.enterprise.resource.AbstractResourcePool.setResourceStateToBusy(AbstractResourcePool.java:302)
>>>>> at com.sun.enterprise.resource.AbstractResourcePool.getUnenlistedResource(AbstractResourcePool.java:688)
>>>>> at com.sun.enterprise.resource.AbstractResourcePool.internalGetResource(AbstractResourcePool.java:606)
>>>>> at com.sun.enterprise.resource.AbstractResourcePool.getResource(AbstractResourcePool.java:455)
>>>>> at com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:248)
>>>>> at com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.java:176)
>>>>> at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:327)
>>>>> at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:189)
>>>>> at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
>>>>> at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:158)
>>>>> at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:108)
>>>>> at oracle.toplink.essentials.jndi.JNDIConnector.connect(JNDIConnector.java:145)
>>>>> at oracle.toplink.essentials.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:184)
>>>>> at oracle.toplink.essentials.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:233)
>>>>> at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.connect(DatabaseAccessor.java:242)
>>>>> at oracle.toplink.essentials.internal.databaseaccess.DatasourceAccessor.reconnect(DatasourceAccessor.java:436)
>>>>> at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.reconnect(DatabaseAccessor.java:1177)
>>>>> at oracle.toplink.essentials.internal.databaseaccess.DatasourceAccessor.incrementCallCount(DatasourceAccessor.java:220)
>>>>> - locked <0x00002aaae8dfa168> (a oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor)
>>>>> at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:479)
>>>>> at oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:452)
>>>>> at oracle.toplink.essentials.threetier.ServerSession.executeCall(ServerSession.java:473)
>>>> all thread dead end there :-) Binod/Jagadish can you help? It i possibly
>>>> a configuration issue.
>>>>
>>>> A+
>>>>
>>>> -- Jeanfrancois
>>>>
>>>> glassfish_at_javadesktop.org wrote:
>>>>> JeanFrancois : I guess, osmanizbat posted another thread-dump which does not have anything to do with jdbc-connection-pool some time back.
>>>>> Can you please refer this ?
>>>>> http://forums.java.net/jive/thread.jspa?messageID=334999
>>>>> [Message sent by forum member 'jr158900' (jr158900)]
>>>>>
>>>>> http://forums.java.net/jive/thread.jspa?messageID=338297
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
>>>>> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
>>>> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>>>>
>