Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-411

Memory leak in nurse rostering example for dataset medium01, due to a bug in Drools

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 6.1.0.Beta1
    • 6.0.1.Final
    • None
    • None

    Description

      See screenshots

      Eventually leads to (but that stacktrace is misleading to the true case):

      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]
      

      Attachments

        Activity

          People

            mfusco@redhat.com Mario Fusco
            gdesmet@redhat.com Geoffrey De Smet (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: