[rules-users] EventFactHandle retained in memory after FactCount reaches 0 for temporal-based rule
Kent Anderson
kent.anderson at psware.com
Thu Jul 10 17:50:48 EDT 2014
The following rule produces a memory leak in Drools 6.1.0-SNAPSHOT:
(Stream mode)
declare MyEvent
@role(event)
@timestamp(timestamp)
end
/* If a RAISE is buffered for N seconds, send it out */
rule "forward raise"
no-loop
duration (3s)
when
$raise : MyEvent(eventState == EventState.RAISE, $raiseId : eventId)
then
System.out.println("Forwarding RAISE(" + $raiseId + ")");
delete($raise);
end
I see the rule fire as expected, printing out the message 3 seconds after the event is added into the session. While the event is waiting, I see a FactCount of 1 in the session. After the rule fires, the fact count goes to 0. However, using JVisualVm, querying the heap dump shows 1 instance of MyEvent, referenced by an EventFactHandle and several other Drools objects.
Is this a bug, or is there a better way to write this rule so Drools’ internals let go of the object after it is no longer a fact?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140710/ade14bcc/attachment-0001.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PastedGraphic-1.png
Type: image/png
Size: 132484 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140710/ade14bcc/attachment-0002.png
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PastedGraphic-2.png
Type: image/png
Size: 157522 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140710/ade14bcc/attachment-0003.png
More information about the rules-users
mailing list