Hello,
 
During capacity tests we've received permGen OOM exception. The occupied space in the permGen area increases rapidly. Any opinions?


On 7/3/07, s erel <erelsagi@gmail.com> wrote:
In our project we are creating a StatefulRuleSession and saving it in a per-thread context (i.e. Each thread has it's own StatefulRuleSession):
 
ruleServiceProvider.getRuleRuntime().createRuleSession(contextName, properties, RuleRuntime.STATEFUL_SESSION_TYPE);
 
When a thread session ends, we are calling release on the previously created StatefulRuleSession.
 
 
Changing the following lines:
 

public abstract class AbstractHashTable
  

...

    public Iterator iterator() {
//        if ( this.iterator == null ) {
//            this.iterator = new HashTableIterator( this );
//        }
//
//        this.iterator.reset();
//        return this.iterator;

        HashTableIterator iterator = new HashTableIterator(this);
        iterator.reset();

        return iterator;
    }

Seems to solve the problem I've encountered. What's your opinion?

 
On 7/2/07, Mark Proctor <mproctor@codehaus.org > wrote:
a working memory should be single threaded, so not sure how this could be a race condition?

Mark

s erel wrote:
I've done a little debugging. The code fails in the following segment:
 
public static class HashTableIterator
...
 while ( this.entry == null ) {
                    this.row++;
                    if ( this.row == this.length ) {
                        return null;
                    }
                    this.entry = this.table[this.row]; // ---> index out of bounds exception
                }
}
 
this.row has the same value as this.length despite the condition above it. Probably a race condition issue.

 
On 7/2/07, Mark Proctor <mproctor@codehaus.org > wrote:
Not really :(

In your situation I tend to keep removing rules and data while still making sure the error happens, to get it down to a minimum. Please do try, as this isn't an error that should happen. Or alterntaively you can open drools-core and drools-compiler in eclipse and execuse and debug this yourself - in your situation this might best. you can put in a breakpoint to listen for that particular exception.

Mark

s erel wrote:
It's hard for me to provide a self contained project. The drl is long and uses several business objects. It's the same drl as we've been using for 306 minus the keyword changes.
Is there anything else i can check or provide you in order to solve this matter.
 
Thanks
 
On 7/1/07, Mark Proctor <mproctor@codehaus.org > wrote:
Can you provide us a self contained project which creates this error? Unless we can recreate it, it will be very hard to track it down. Please attach the project to a jira and we'll make it a priority.

Mark
s erel wrote:
Hello,
 
I've just started integrating MR3 into my project (I've previously used 3.06). The drl compiles and everything seems fine, but during
tests the following exception is thrown for time to time:
 
java.lang.ArrayIndexOutOfBoundsException: 17
 at org.drools.util.AbstractHashTable$HashTableIterator.next(AbstractHashTable.java:250)
 at org.drools.reteoo.Rete$ObjectTypeConf.buildCache(Rete.java:434)
 at org.drools.reteoo.Rete$ObjectTypeConf.getObjectTypeNodes(Rete.java:425)
 at org.drools.reteoo.Rete.assertObject(Rete.java:172)
 at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:190)
 at org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction.execute (ReteooWorkingMemory.java:163)
 at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:1135)
 at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:781)
 at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:584)
 at org.drools.jsr94.rules.StatefulRuleSessionImpl.addObject(StatefulRuleSessionImpl.java:162)
 
This only happens during high load tests.
Can anyone help me?
 
Thanks
 

_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users

 

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users


_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users


_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users