[jboss-jira] [JBoss JIRA] (DROOLS-81) Drools freezes during execution
Mario Fusco (JIRA)
jira-events at lists.jboss.org
Wed Nov 13 04:30:07 EST 2013
[ https://issues.jboss.org/browse/DROOLS-81?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mario Fusco resolved DROOLS-81.
-------------------------------
Fix Version/s: 5.5.1.Final
6.0.1.Final
Resolution: Done
I fixed this in mvel by synchronizing those WeakHashMaps. The fix will be available starting from mvel 2.1.8.Final
> Drools freezes during execution
> -------------------------------
>
> Key: DROOLS-81
> URL: https://issues.jboss.org/browse/DROOLS-81
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 5.5.0.Final
> Reporter: Andrew kelly
> Assignee: Mario Fusco
> Fix For: 5.5.1.Final, 6.0.1.Final
>
>
> When Drools is being run to process rules on a number of threads on occasion the rules engine freezes with the stack trace below and does not complete. There are a number of other threads that are also frozen out waiting to lock 0x00002aab9d4caf58:
> Frozen Thread
> "pool-3-thread-8" prio=10 tid=0x00002ab53d16e000 nid=0x1c29 runnable [0x0000000049fc7000]
> java.lang.Thread.State: RUNNABLE
> at java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:408)
> - locked \<0x00002aab9d4caf58\> (a java.lang.ref.ReferenceQueue)
> at java.util.WeakHashMap.getTable(WeakHashMap.java:417)
> at java.util.WeakHashMap.get(WeakHashMap.java:464)
> at org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:241)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:1039)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:987)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:377)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:143)
> at org.mvel2.ast.ASTNode.optimize(ASTNode.java:159)
> at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:115)
> at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
> at org.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:113)
> at org.mvel2.MVEL.executeExpression(MVEL.java:930)
> at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:104)
> at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
> - locked \<0x00002aaec5b1b160\> (a org.drools.common.DefaultAgenda)
> at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
> at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> at com.iontrading.arc.liquidityrules.engine.BatchRulesEngine.processAll(BatchRulesEngine.java:64)
> at com.iontrading.arc.liquidityrules.api.rulestoresource.AbstractRuleStoreSourceService.performBaselineProcessing(AbstractRuleStoreSourceService.java:860)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService.access$600(RuleStoreSourceService.java:32)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:66)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:38)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> Example of other frozen threads:
> "pool-3-thread-9" prio=10 tid=0x00002ab53d16f800 nid=0x1c2a waiting for monitor entry [0x000000004a0c9000]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:386)
> - waiting to lock \<0x00002aab9d4caf58\> (a java.lang.ref.ReferenceQueue)
> at java.util.WeakHashMap.getTable(WeakHashMap.java:417)
> at java.util.WeakHashMap.get(WeakHashMap.java:464)
> at org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:241)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:1039)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:987)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:377)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:143)
> at org.mvel2.ast.ASTNode.optimize(ASTNode.java:159)
> at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:115)
> at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
> at org.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:113)
> at org.mvel2.MVEL.executeExpression(MVEL.java:930)
> at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:104)
> at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
> - locked \<0x00002aaeedca2870\> (a org.drools.common.DefaultAgenda)
> at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
> at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> at com.iontrading.arc.liquidityrules.engine.BatchRulesEngine.processAll(BatchRulesEngine.java:64)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService.performViewProcessing(RuleStoreSourceService.java:133)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:78)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:38)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list