[jboss-jira] [JBoss JIRA] (DROOLS-807) Deadlock in ProjectClassLoader
Munish Kumar (JIRA)
issues at jboss.org
Tue Jun 2 17:00:02 EDT 2015
Munish Kumar created DROOLS-807:
-----------------------------------
Summary: Deadlock in ProjectClassLoader
Key: DROOLS-807
URL: https://issues.jboss.org/browse/DROOLS-807
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 6.1.0.Final
Reporter: Munish Kumar
Assignee: Mario Fusco
We see below deadlock information in our Production tomcat
Found one Java-level deadlock:
=============================
"tomcat-http--74":
waiting to lock monitor 0x00007fae28022218 (object 0x00000000902d8d20, a org.drools.core.common.ProjectClassLoader),
which is held by "tomcat-http--36"
"tomcat-http--36":
waiting to lock monitor 0x00007fae28042838 (object 0x000000009044e5b8, a org.drools.core.common.ProjectClassLoader$InternalTypesClassLoader),
which is held by "Metrics Collection"
"Metrics Collection":
waiting to lock monitor 0x00007fae28022218 (object 0x00000000902d8d20, a org.drools.core.common.ProjectClassLoader),
which is held by "tomcat-http--36"
Java stack information for the threads listed above:
===================================================
"tomcat-http--74":
at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:111)
- waiting to lock <0x00000000902d8d20> (a org.drools.core.common.ProjectClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.drools.core.base.ClassFieldAccessorCache.getClass(ClassFieldAccessorCache.java:121)
at org.drools.core.base.ClassFieldAccessorCache.getClassObjectType(ClassFieldAccessorCache.java:45)
at org.drools.core.reteoo.ClassObjectTypeConf.<init>(ClassObjectTypeConf.java:85)
at org.drools.core.common.ObjectTypeConfigurationRegistry.getObjectTypeConf(ObjectTypeConfigurationRegistry.java:72)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.initInitialFact(StatefulKnowledgeSessionImpl.java:689)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:388)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:278)
"tomcat-http--36":
at java.lang.ClassLoader.loadClass(ClassLoader.java:404)
- waiting to lock <0x000000009044e5b8> (a org.drools.core.common.ProjectClassLoader$InternalTypesClassLoader)
at org.drools.core.common.ProjectClassLoader$InternalTypesClassLoader.loadType(ProjectClassLoader.java:293)
at org.drools.core.common.ProjectClassLoader$InternalTypesClassLoader.access$200(ProjectClassLoader.java:258)
at org.drools.core.common.ProjectClassLoader.loadType(ProjectClassLoader.java:140)
at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:115)
- locked <0x00000000902d8d20> (a org.drools.core.common.ProjectClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:640)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.mvel2.ParserConfiguration.checkForDynamicImport(ParserConfiguration.java:163)
at org.mvel2.ParserConfiguration.hasImport(ParserConfiguration.java:191)
at org.mvel2.ParserContext.hasImport(ParserContext.java:363)
at org.mvel2.compiler.AbstractParser.createPropertyToken(AbstractParser.java:1342)
at org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:846)
at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:129)
at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:63)
at org.mvel2.MVEL.compileExpression(MVEL.java:810)
at org.drools.core.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:429)
at org.drools.core.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:240)
at org.drools.core.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:222)
at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:206)
at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:173)
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:134)
at org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:502)
at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:377)
at org.drools.core.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:288)
at org.drools.core.reteoo.EntryPointNode.assertObject(EntryPointNode.java:251)
at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:367)
at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:286)
at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:139)
at org.drools.core.command.runtime.rule.InsertElementsCommand.execute(InsertElementsCommand.java:93)
at org.drools.core.command.runtime.rule.InsertElementsCommand.execute(InsertElementsCommand.java:40)
at org.drools.core.command.runtime.BatchExecutionCommandImpl.execute(BatchExecutionCommandImpl.java:155)
at org.drools.core.command.runtime.BatchExecutionCommandImpl.execute(BatchExecutionCommandImpl.java:76)
at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:321)
at com.amdocs.dc.ruleengine.service.RuleEngineServiceImpl.evaluateRules(RuleEngineServiceImpl.java:452)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.amdocs.dc.applicationcontext.BusinessResponseProcessorServiceInvoker.invoke(BusinessResponseProcessorServiceInvoker.java:53)
at com.amdocs.dc.applicationcontext.spring.BusinessResponseProcessorInvocationHandler.invoke(BusinessResponseProcessorInvocationHandler.java:85)
at com.amdocs.dc.applicationcontext.spring.$Proxy121.evaluateRules(Unknown Source)
"Metrics Collection" #21 daemon prio=5 os_prio=0 tid=0x00007fae7883a000 nid=0x7276 waiting for monitor entry [0x00007fae27ffd000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.drools.core.common.ProjectClassLoader$InternalTypesClassLoader.loadClass(ProjectClassLoader.java:284)
- waiting to lock <0x00000000902d8d20> (a org.drools.core.common.ProjectClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.mercury.diagnostics.capture.metrics.CollectorControl.instantiateCollector(CollectorControl.java:470)
at com.mercury.diagnostics.capture.metrics.CollectorControl.initialize(CollectorControl.java:369)
at com.mercury.diagnostics.capture.metrics.CollectorAgent.validateInitialization(CollectorAgent.java:1020)
at com.mercury.diagnostics.capture.metrics.CollectorAgent.run(CollectorAgent.java:803)
at java.lang.Thread.run(Thread.java:745)
and because of above, other HTTP Connector thread are stuck at
"tomcat-http--42" #217 daemon prio=5 os_prio=0 tid=0x00007fae54153000 nid=0x7619 waiting for monitor entry [0x00007fae12d72000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:111)
- waiting to lock <0x00000000902e3e88> (a org.drools.core.common.ProjectClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.drools.core.base.ClassFieldAccessorCache.getClass(ClassFieldAccessorCache.java:121)
at org.drools.core.base.ClassFieldAccessorCache.getClassObjectType(ClassFieldAccessorCache.java:45)
at org.drools.core.reteoo.ClassObjectTypeConf.<init>(ClassObjectTypeConf.java:85)
at org.drools.core.common.ObjectTypeConfigurationRegistry.getObjectTypeConf(ObjectTypeConfigurationRegistry.java:72)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.initInitialFact(StatefulKnowledgeSessionImpl.java:689)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:388)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:278)
at org.drools.core.common.PhreakWorkingMemoryFactory.createWorkingMemory(PhreakWorkingMemoryFactory.java:21)
at org.drools.core.impl.StatelessKnowledgeSessionImpl.newWorkingMemory(StatelessKnowledgeSessionImpl.java:133)
at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:309)
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
More information about the jboss-jira
mailing list