[jboss-jira] [JBoss JIRA] (JBRULES-3692) Real-time planning: memory leak when calling addProblemFactChange(ProblemFactChange)
Geoffrey De Smet (JIRA)
jira-events at lists.jboss.org
Fri Nov 23 10:50:21 EST 2012
[ https://issues.jboss.org/browse/JBRULES-3692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12736713#comment-12736713 ]
Geoffrey De Smet commented on JBRULES-3692:
-------------------------------------------
It's definitely a bug in Planner and not in Drools: Planner forgets to .dispose() one of it's sessions.
{code}
addProblemFactChange() is called:
dispose() called on org.drools.reteoo.ReteooStatefulSession at 183fd92
newStatefulSession() called and created org.drools.reteoo.ReteooStatefulSession at 3a02c7
newStatefulSession() called and created org.drools.reteoo.ReteooStatefulSession at 14376ed
dispose() called on org.drools.reteoo.ReteooStatefulSession at 14376ed
newStatefulSession() called and created org.drools.reteoo.ReteooStatefulSession at 107077e
addProblemFactChange() is called again:
dispose() called on org.drools.reteoo.ReteooStatefulSession at 107077e
newStatefulSession() called and created org.drools.reteoo.ReteooStatefulSession at d4c6fe
newStatefulSession() called and created org.drools.reteoo.ReteooStatefulSession at bafcf5
dispose() called on org.drools.reteoo.ReteooStatefulSession at bafcf5
newStatefulSession() called and created org.drools.reteoo.ReteooStatefulSession at 1021bdf
{code}
> Real-time planning: memory leak when calling addProblemFactChange(ProblemFactChange)
> ------------------------------------------------------------------------------------
>
> Key: JBRULES-3692
> URL: https://issues.jboss.org/browse/JBRULES-3692
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: drools-planner
> Affects Versions: 5.5.0.Final
> Reporter: Radovan Synek
> Assignee: Geoffrey De Smet
> Priority: Critical
>
> When using Planner with DroolsScoreDirector, after each problem fact change, number of planning entity instances increases.
>
> Steps to reproduce:
> 1. open cloud balance example with GUI, choose the largest input
> 2. start solving the problem
> 3. delete some of the listed computers - to make the fact change (for me, 5 computers in a 5 seconds are enough)
> 4. take a heapdump (I used jmap -dump:live,file=... to enforce GC first)
> 5. open visualvm or similar tool and look for the planning entity class
> 6. repeat 3. - 5. several times, you should see increasing number of planning entity instances
> Also, there is a rule base holding sessions under the Planner API - and number of sessions also increases in time (these sessions reference to planning entity instances).
> Steps to reproduce:
> 1. open the last heapdump in similar tool and look for ReteooRuleBase.
> 2. the rule base holds ObjectHashSet with stateful sessions in its entries
> 3. you should see a different number of these session in every heapdump taken in previous recipe
--
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