[jboss-jira] [JBoss JIRA] (DROOLS-807) Stuck thread due to deadlock in ProjectClassLoader
Munish Kumar (JIRA)
issues at jboss.org
Tue Jun 2 17:01:02 EDT 2015
[ https://issues.jboss.org/browse/DROOLS-807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Munish Kumar updated DROOLS-807:
--------------------------------
Summary: Stuck thread due to deadlock in ProjectClassLoader (was: Deadlock in ProjectClassLoader)
> Stuck thread due to 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