]
Magnus Vojbacke commented on DROOLS-35:
---------------------------------------
I added the reference chain to the Description.
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: