[jboss-jira] [JBoss JIRA] (DROOLS-35) Possible memory leak: MarshallerReaderContext held indefinitely by ReteooStatefulSession

Magnus Vojbacke (JIRA) jira-events at lists.jboss.org
Tue Feb 12 05:45:56 EST 2013


     [ https://issues.jboss.org/browse/DROOLS-35?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Magnus Vojbacke updated DROOLS-35:
----------------------------------

    Description: 
It seems that the memory consumption increases after a session has been unmarshalled. That is to say: an unmarshalled session of size x uses  much more memory than if I had started with an empty session and inserted x number of facts.

Digging into a memory profile, I found that after unmarshalling, my ReteooStatefulSession instance holds on to a MarshallerReaderContext instance: 

StatefulKnowledgeSessionImpl : session
ReteooStatefulSession : defaultEntryPoint
NamedEntryPoint : objectStore
SingleThreadedObjectStore : identityMap
ObjectHashMap : table
Entry[] : [0]
ObjectHashMap$ObjectEntry : value
DefaultFactHandle : lastLeftTuple
RuleTerminalNodeLeftTuple : object
AgendaItem : context
PropagationContextImpl : readerContext
MarshallerReaderContext : this 

The MarshallerReaderContext consumes a lot of memory.

Digging into the unmarshalling code, it seems that the MarshallerReaderContext is a utility class used during unmarshalling of sessions. Intuitively, it seems wrong that a reference to this object should be held after unmarshalling is finished.


  was:
It seems that the memory consumption increases after a session has been unmarshalled. That is to say: an unmarshalled session of size x uses  much more memory than if I had started with an empty session and inserted x number of facts.

Digging into a memory profile, I found that after unmarshalling, my ReteooStatefulSession instance holds on to a MarshallerReaderContext instance. The MarshallerReaderContext consumes a lot of memory.

Digging into the unmarshalling code, it seems that the MarshallerReaderContext is a utility class used during unmarshalling of sessions. Intuitively, it seems wrong that a reference to this object should be held after unmarshalling is finished.



    
> Possible memory leak: MarshallerReaderContext held indefinitely by ReteooStatefulSession
> ----------------------------------------------------------------------------------------
>
>                 Key: DROOLS-35
>                 URL: https://issues.jboss.org/browse/DROOLS-35
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 5.5
>         Environment: Oracle JDK7
>            Reporter: Magnus Vojbacke
>            Assignee: Mario Fusco
>
> It seems that the memory consumption increases after a session has been unmarshalled. That is to say: an unmarshalled session of size x uses  much more memory than if I had started with an empty session and inserted x number of facts.
> Digging into a memory profile, I found that after unmarshalling, my ReteooStatefulSession instance holds on to a MarshallerReaderContext instance: 
> StatefulKnowledgeSessionImpl : session
> ReteooStatefulSession : defaultEntryPoint
> NamedEntryPoint : objectStore
> SingleThreadedObjectStore : identityMap
> ObjectHashMap : table
> Entry[] : [0]
> ObjectHashMap$ObjectEntry : value
> DefaultFactHandle : lastLeftTuple
> RuleTerminalNodeLeftTuple : object
> AgendaItem : context
> PropagationContextImpl : readerContext
> MarshallerReaderContext : this 
> The MarshallerReaderContext consumes a lot of memory.
> Digging into the unmarshalling code, it seems that the MarshallerReaderContext is a utility class used during unmarshalling of sessions. Intuitively, it seems wrong that a reference to this object should be held after unmarshalling is finished.

--
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