[jboss-jira] [JBoss JIRA] (DROOLS-660) dead lock in fastFindClass method in PackageClassLoader extends ClassLoader implements FastClassLoader

chi chi (JIRA) issues at jboss.org
Sun Dec 7 22:33:39 EST 2014


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

chi chi commented on DROOLS-660:
--------------------------------

I'm sorry, this is the first time i report a question; i think this is a bug in 5.6.0Final; 
this occurs when we down rule and at the same time we get 100 requests per seconds;
then we got a deadlock problem


Found one Java-level deadlock:
=============================
"http-8108-21":
  waiting for ownable synchronizer 0x000000042fd7a3c8, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
  which is held by "http-8108-2"
"http-8108-2":
  waiting for ownable synchronizer 0x000000042fde6b70, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
  which is held by "http-8108-21"

Java stack information for the threads listed above:
===================================================
"http-8108-21":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x000000042fd7a3c8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:842)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1178)
        at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186)
        at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
        at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:605)
        at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:254)
        at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:105)
        at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:592)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:624)
        at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:254)
        at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:237)
        at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:88)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at org.drools.rule.JavaDialectRuntimeData.wire(JavaDialectRuntimeData.java:434)
        at org.drools.rule.JavaDialectRuntimeData.reload(JavaDialectRuntimeData.java:482)
        at org.drools.rule.JavaDialectRuntimeData.onBeforeExecute(JavaDialectRuntimeData.java:252)
        at org.drools.rule.DialectRuntimeRegistry.onBeforeExecute(DialectRuntimeRegistry.java:139)
        at org.drools.common.AbstractRuleBase.executeQueuedActions(AbstractRuleBase.java:1276)
        at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:349)
        at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:327)
        at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:950)
        at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:894)
        at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269)
        at com.risk.control.sync.rule.RuleEngineImpl.execute(RuleEngineImpl.java:44)
        at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)
:
at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
        at com.risk.common.aop.LogElapsedTimeHandler.invoke(LogElapsedTimeHandler.java:27)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        at com.sun.proxy.$Proxy49.execute(Unknown Source)
        at com.risk.control.sync.service.impl.ChkLegalServiceImpl.doCheckEvent(ChkLegalServiceImpl.java:136)
        at com.risk.control.sync.service.impl.ChkLegalServiceImpl.checkEvent(ChkLegalServiceImpl.java:84)
        at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
        at com.risk.common.aop.LogElapsedTimeHandler.invoke(LogElapsedTimeHandler.java:27)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        at com.sun.proxy.$Proxy59.checkEvent(Unknown Source)
        at com.risk.control.sync.web.servlet.ChkLegalServlet.syncEventProcess(ChkLegalServlet.java:91)
        at com.risk.control.sync.web.servlet.ChkLegalServlet.doPost(ChkLegalServlet.java:70)
        at com.risk.control.sync.web.servlet.ChkLegalServlet.doGet(ChkLegalServlet.java:64)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.risk.common.web.filter.DefaultFilter.doFilter(DefaultFilter.java:20)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:338)
        at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:81)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)





> dead lock in fastFindClass method in PackageClassLoader extends ClassLoader implements FastClassLoader 
> -------------------------------------------------------------------------------------------------------
>
>                 Key: DROOLS-660
>                 URL: https://issues.jboss.org/browse/DROOLS-660
>             Project: Drools
>          Issue Type: Feature Request
>            Reporter: chi chi
>            Assignee: Mark Proctor
>




--
This message was sent by Atlassian JIRA
(v6.3.8#6338)


More information about the jboss-jira mailing list