[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 11:32:21 EST 2012


    [ https://issues.jboss.org/browse/JBRULES-3692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12736718#comment-12736718 ] 

Geoffrey De Smet commented on JBRULES-3692:
-------------------------------------------

Cause found: DefaultSolver#solvingStarted is called after every addProblemFactChange, but that method doesn't dispose() the old Session.
More generally, several things in DefaultSolver#solvingStarted(), such as the scoreDirector reset and the random reinitialization shouldn't be done when an addProblemFactChange() is called
                
> 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