[rules-users] Drools 6.0.1: GC overhead limit exceeded, even though objects are retracted

JarkkoMakela jarkko.matinpoika at gmail.com
Wed Jan 22 07:03:02 EST 2014


We have a program that validates large amount of data. When changing this
program to use drools 6.0.1 instead of 5.5.0, this GC overhead limit
exceeded problem occurred.
Program reads one object to memory, then validate it and then retract it.
This is repeated thousands of times.

java version "1.7.0_45"
java options:
JVM_ARGS="$JVM_ARGS -Xmx256m"
JVM_ARGS="$JVM_ARGS -XX:+HeapDumpOnOutOfMemoryError"
JVM_ARGS="$JVM_ARGS -XX:HeapDumpPath=/home/heapdumps"

I also tried different java garbage collection options: -XX:+UseSerialGC,
-XX:+UseParallelGC and -XX:+UseConcMarkSweepGC, but it did not help.

Heapdump says that:
One instance of "org.drools.core.reteoo.JoinNodeLeftTuple" loaded by
"sun.misc.Launcher$AppClassLoader @ 0xf03a13a8" occupies 203,920,080
(98.40%) bytes.


This error is reproduced with rules below.  These rules add one object to
memory, then there is one rule that evaluates that object, and after that
the object is retracted. This is repeated in continuous loop, but memory
runs out soon.



package com.cat

declare ValidationError
jee : String
end

declare cat2
name : String
age : Integer
end


rule 'add cat2'
dialect 'mvel'
salience 3000

when
	not(exists(cat2()))
then
System.out.println("insert cat2");
 $p = new cat2()
insert ($p);
	modify ($p){
	name = "mau"
	};
end


rule 'this rule does not fire'
dialect 'mvel'
salience 4500

when
	$k1 : cat2($name : name != "miau")
	$k2 : cat2($nameofcat2 : name == "miau")
then
    modify ($k1){
	name =  $nameofcat2
	};
    modify ($k2){
	name = ("miau")
	};
	System.out.println("this rule does not fire");
end


rule 'retract cat2'
dialect 'mvel'
salience -50

when
	$c2 : cat2()
then
retract($c2);
System.out.println("retract cat2");
end


query "getValidationErrors"
validationError: ValidationError()
end




--
View this message in context: http://drools.46999.n3.nabble.com/Drools-6-0-1-GC-overhead-limit-exceeded-even-though-objects-are-retracted-tp4027803.html
Sent from the Drools: User forum mailing list archive at Nabble.com.


More information about the rules-users mailing list