commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (POOL-247) Threads stuck for an hour or more
Date Wed, 15 Jan 2014 14:57:19 GMT

    [ https://issues.apache.org/jira/browse/POOL-247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13872148#comment-13872148
] 

Phil Steitz commented on POOL-247:
----------------------------------

I see no evidence of a pool bug here.  The right place to ask for help debugging usage problems
is the commons user list.  I will wait a bit on closing this in case someone else sees evidence
of an actual bug.

>From the stack traces, it looks like what is hanging is your factory's makeObject method.
 The different behavior between pool 1.3 and 1.6 may be due to threadsafety issues in the
factory.  Factory methods must be threadsafe (i.e., must function properly when accessed concurrently
by multiple threads).  In pool 1.3, factory methods were executed within pool sync blocks,
effectively synchronizing access to them.  In 1.5/1.6, this is not the case, so the first
thing to check is threadsafety of the factory's makeObject.

> Threads stuck for an hour or more
> ---------------------------------
>
>                 Key: POOL-247
>                 URL: https://issues.apache.org/jira/browse/POOL-247
>             Project: Commons Pool
>          Issue Type: Bug
>    Affects Versions: 1.6
>            Reporter: samjna
>            Priority: Critical
>         Attachments: AppLog.txt, Server Log.txt
>
>
> Hello,
> Our both the servers had to be restarted because of this. We have noticed it 3-4 times
since we upgraded the commons pool jar from 1.3 to 1.6(latest). We communicate with NetProvision,
originally a Subex product, via Corba.
> I have attached the logs. All times are in UTC. Please review it.
> Thanks.
> =======
> ####<13-Jan-2014 12:24:13 o'clock AM UTC> <Error> <WebLogicServer>
<sedm3219.ent.agt.ab.ca> <xxxxxxxxxSrv2> <[ACTIVE] ExecuteThread: '34' for
>  queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <>
<> <1389572653400> <BEA-000337> <[STUCK] ExecuteThread: '57' for queue:
'web
> logic.kernel.Default (self-tuning)' has been busy for "612" seconds working on the request
"com.xxxx.services.xxxxxxxxx.service.ProxyBean_l5
> xrcw_EOImpl", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.
Stack trace:
>         java.lang.Object.wait(Native Method)
>         weblogic.iiop.SequencedRequestMessage.waitForData(SequencedRequestMessage.java:37)
>         weblogic.iiop.EndPointImpl.sendReceive(EndPointImpl.java:1171)
>         weblogic.iiop.EndPointImpl.sendReceive(EndPointImpl.java:1186)
>         weblogic.corba.idl.RemoteDelegateImpl.invoke(RemoteDelegateImpl.java:383)
>         weblogic.corba.idl.RemoteDelegateImpl.invoke(RemoteDelegateImpl.java:341)
>         org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
>         com.syndesis.SYcrbAV._SessionFactoryStub.createMaster(_SessionFactoryStub.java:131)
>         com.xxxx.services.xxxxxxxxx.service.impl.netprovision.NPSession.<init>(NPSession.java:122)
>         com.xxxx.services.xxxxxxxxx.service.impl.netprovision.NPSessionPoolFactory.makeObject(NPSessionPoolFactory.java:50)
>         org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
>         com.xxxx.services.xxxxxxxxx.service.impl.netprovision.ConnectionPool.getSession(ConnectionPool.java:63)
>         com.xxxx.services.xxxxxxxxx.service.impl.netprovision.NPProxyImpl.searchCurrentOrPendingServices(NPProxyImpl.java:1211)
>         com.xxxx.services.xxxxxxxxx.service.impl.xxxxxxxxxxxSvcImpl.searchCurrentOrPendingServices(xxxxxxxxxxxSvcImpl.java:2644)
>         com.xxxx.services.xxxxxxxxx.service.impl.xxxxxxxxxxxSvcImpl.getAssignmentInformation(xxxxxxxxxxxSvcImpl.java:2578)
>         sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)
>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         java.lang.reflect.Method.invoke(Method.java:597)
>         org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
>         org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
>         org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
>         com.xxxx.framework.monitor.CreateArtifactAdvice.invoke(CreateArtifactAdvice.java:172)
>         org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>         com.xxxx.services.xxxxxxxxx.common.util.LoggingMethodInterceptor.invoke(LoggingMethodInterceptor.java:39)
>         org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>         org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>         $Proxy110.getAssignmentInformation(Unknown Source)
>         com.xxxx.services.xxxxxxxxx.service.impl.xxxxxxxxxxxSvcEjb.getAssignmentInformation(xxxxxxxxxxxSvcEjb.java:94)
>         com.xxxx.services.xxxxxxxxx.service.impl.xxxxxxxxxxxEJB_ck0gva_EOImpl.getAssignmentInformation(xxxxxxxxxxxEJB_ck0gva_EOImpl.ja
> va:653)
>         com.xxxx.services.xxxxxxxxx.service.impl.xxxxxxxxxxxEJB_ck0gva_EOImpl_WLSkel.invoke(Unknown
Source)
>         weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:174)
>         weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:345)
>         weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
>         com.xxxx.services.xxxxxxxxx.service.impl.xxxxxxxxxxxEJB_ck0gva_EOImpl_1030_WLStub.getAssignmentInformation(Unknown
Source)
>         com.xxxx.services.xxxxxxxxx.service.ProxyBean.getAssignmentInformation(ProxyBean.java:761)
>         com.xxxx.services.xxxxxxxxx.service.ProxyBean_l5xrcw_EOImpl.getAssignmentInformation(ProxyBean_l5xrcw_EOImpl.java:581)
>         com.xxxx.services.xxxxxxxxx.service.ProxyBean_l5xrcw_EOImpl_WLSkel.invoke(Unknown
Source)
>         weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
>         weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
>         weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
>         weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
>         weblogic.security.service.SecurityManager.runAs(Unknown Source)
>         weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
>         weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
>         weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
>         weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> ======



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message