[
https://issues.jboss.org/browse/DROOLS-411?page=com.atlassian.jira.plugin...
]
Geoffrey De Smet commented on DROOLS-411:
-----------------------------------------
Another dataset, sprint01_1week.xml (use import button to get it) suffers from this
problem too, but it's hard to notice because it takes a very long time to OOM in that
case.
This means that it's possible that the other datasets suffer from it too, making it
not so rare...
Memory leak in nurse rostering example for dataset medium01, due to a
bug in Drools
-----------------------------------------------------------------------------------
Key: DROOLS-411
URL:
https://issues.jboss.org/browse/DROOLS-411
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 6.0.1.Final
Reporter: Geoffrey De Smet
Assignee: Mario Fusco
Attachments: memory_leak_nurse_rostering.png, memory_leak_nurse_rostering1.png
See screenshots
Eventually leads to (but that stacktrace is misleading to the true case):
{code}
java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.drools.core.reteoo.NotNode.createLeftTuple(NotNode.java:127)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at org.drools.core.phreak.PhreakJoinNode.doRightInserts(PhreakJoinNode.java:152)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at org.drools.core.phreak.PhreakJoinNode.doNode(PhreakJoinNode.java:56)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at
org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:547)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at
org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:533)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:334)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:161)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at
org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:116)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:200)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:67)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:935)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1200)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at
org.drools.core.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:958)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at
org.drools.core.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:932)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at
org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:232)
~[drools-core-6.1.0-20140109.225128-430.jar:6.1.0-SNAPSHOT]
at
org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector.calculateScore(DroolsScoreDirector.java:98)
~[classes/:na]
at
org.optaplanner.core.impl.solver.scope.DefaultSolverScope.calculateScore(DefaultSolverScope.java:101)
~[classes/:na]
at
org.optaplanner.core.impl.phase.AbstractSolverPhaseScope.calculateScore(AbstractSolverPhaseScope.java:124)
~[classes/:na]
at
org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.processMove(LocalSearchDecider.java:147)
~[classes/:na]
at
org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.doMove(LocalSearchDecider.java:134)
~[classes/:na]
at
org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.decideNextStep(LocalSearchDecider.java:107)
~[classes/:na]
at
org.optaplanner.core.impl.localsearch.DefaultLocalSearchSolverPhase.solve(DefaultLocalSearchSolverPhase.java:62)
~[classes/:na]
at
org.optaplanner.core.impl.solver.DefaultSolver.runSolverPhases(DefaultSolver.java:190)
~[classes/:na]
at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:155)
~[classes/:na]
at
org.optaplanner.examples.common.business.SolutionBusiness.solve(SolutionBusiness.java:268)
~[classes/:na]
at
org.optaplanner.examples.common.swingui.SolverAndPersistenceFrame$SolveAction$1.run(SolverAndPersistenceFrame.java:278)
~[classes/:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
~[na:1.7.0_25]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) ~[na:1.7.0_25]
at java.util.concurrent.FutureTask.run(FutureTask.java:166) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
~[na:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
{code}
--
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