[rules-users] PermGen OOM and shadow proxies

s erel erelsagi at gmail.com
Wed Oct 10 11:07:01 EDT 2007


I've tried it with trunk and the OOM error still happens.

In our project working memories/facts are not shared between threads. One
thread does not interfere with another thread rule evaluation.

Do we need shadow proxies for such a scenario?

The document says:
*IMPORTANT: disabling shadow facts for a class inhibits the ability of the
engine keep track of changes to that class attributes. It means, once
asserted, a fact of that class MUST NOT change any of its attributes or the
engine may start to present unpredictable behavior. It does not help to use
update(). The only way to safely change an attribute of a fact whose shadow
fact is disabled is to call modifyRetract() before changing the attribute,
change the attribute and call modifyAssert()

*What about when retracting in order to assert a new reference? Is it safe
to use normal retract() ?



On 10/8/07, Mark Proctor <mproctor at codehaus.org> wrote:
>
>  s erel wrote:
>
> I understand that shadow facts are created once during building.
> Still, the application crashes in less than a minute when shadow facts are
> enabled and it runs for hours when they are disabled.
>
> I was assuming it to be related to a corrupted data structure that leaks.
>
> Can you think of such a case?
> Are there any limitations for shadow facts (besides them being final)?
>
> Can you try this with trunk and let us know if it still happens?
>
> https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/
>
>
>
> On 10/8/07, Mark Proctor < mproctor at codehaus.org> wrote:
> >
> >  s erel wrote:
> >
> > Hello,
> >
> > I've posted before regarding this issue.
> > We currently evaluating drools 4.01 for our project. We've noticed that
> > the perm gen space grows at a rapid rate and that eventually results
> > in a OOM. When shadow facts are disabled, the problem seems to go away
> > (or at least not as noticeable as before).
> >
> > Any ideas?
> > What is the effect of a shadowed object which itself contains complex
> > objects that are also involved in a pattern (through inline eval)?
> >
> >  when the system encounters a new Class, and shadow is enabled, it
> > generates a proxy to that class - however this is a one time operation. The
> > only way that shadow proxies would continue to be created would be if you
> > where continually creating or loading new classes or redefinitions of the
> > old classes.
> >
> >
> >
> >
> >
> > ------------------------------
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
> ------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20071010/65814666/attachment.html 


More information about the rules-users mailing list