Leon, This specific problem was fixed in the 4.0.x branch a few weeks ago. I believe we covered all the scenarios, but in case we missed any, please let us know asap.
[]s Edson 2008/3/13, Leon Stein <[EMAIL PROTECTED]>: > > I'll test with the latest from 4.0.x branch, in the meanwhile, more info > on the actual error: > > Stack trace: > > > org.drools.RuntimeDroolsException: Exception executing predicate > > [EMAIL PROTECTED] > at > org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java > :216) > at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:132) > at > > org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject( > CompositeObjectSinkAdapter.java:318) > at > org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:153) > at org.drools.reteoo.Rete.assertObject(Rete.java:175) > at > org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192) > at > org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java > :71) > at > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java > :909) > at > > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java > :881) > at > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java > :682) > <removed> > Caused by: org.mvel.CompileException: cannot invoke getter: getBar > [declr.class: org.example.Foo; act.class: null] > at > org.mvel.optimizers.impl.refl.GetterAccessor.getValue(GetterAccessor.java > :52) > > at > org.mvel.optimizers.impl.refl.VariableAccessor.getValue( > VariableAccessor.java:39) > at > org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated( > VariableDeepPropertyNode.java:22) > at > org.mvel.ast.PropertyASTNode.getReducedValueAccelerated( > PropertyASTNode.java:21) > at > org.mvel.ast.BinaryOperation.getReducedValueAccelerated( > BinaryOperation.java:21) > at org.mvel.MVELRuntime.execute(MVELRuntime.java:88) > at org.mvel.CompiledExpression.getValue(CompiledExpression.java > :111) > > at org.mvel.MVEL.executeExpression(MVEL.java:235) > > at > org.drools.base.mvel.MVELPredicateExpression.evaluate( > MVELPredicateExpression.java:36) > at > > org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java > :210) > ... 41 more > > Caused by: java.lang.NullPointerException > > at sun.reflect.GeneratedMethodAccessor292.invoke(Unknown Source) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:585) > > at > org.mvel.optimizers.impl.refl.GetterAccessor.getValue(GetterAccessor.java > :42) > > ... 50 more > > - Only occurs on multi-cpu boxes (Linux, Sun JRE 1.5.0_06, 64 bit) under > heavy load with simultaneous sessions running against same rule base > with thousands of facts in each session. > > - The rule where exception occurs traverses properties of inserted > object (foo.bar expression): > > rule "XYZ" > when > foo : FooHolder(foo.bar == Bar.GREEN) > ... > then > ... > end > > The traversed objects are not shared between sessions, and properties > are never null. > > > Leon > > > > Mark Proctor wrote: > > Leon S wrote: > >> We ran into this problem after upgrading from 3.0.* to 4.0.4. > >> > >> Is there a JIRA issue filed for this? I see a few MVEL-related issues > scoped > >> for 4.0.5 and 5.0 releases, but nothing that looks like specifically > >> covering this problem. > >> > >> > > The user who reported this has not provided more information on how > > this is happening, nor have they confirmed that is or is not fixed in > > 4.0.x. My advice is quickly test your code against 4.0.x and let us > > know if there is a problem. There is no way we can determine if there > > is or isn't a problem from the stack trace given at the start of this > > conversation thread. > > http://anonsvn.labs.jboss.com/labs/jbossrules/branches/4.0.x/ > >> Thanks, > >> > >> Leon > >> > >> > >> Mark Proctor wrote: > >> > >>> This looks different to what was fixed in 4.0.4. I'm cc'ing brockm to > >>> get his feedback as it looks like an MVEL bug on accessors. > >>> > >>> Mark > >>> Fernando Meyer wrote: > >>> > >>>> Hi Ingomar, > >>>> > >>>> Which drools version are you using? We made improvements on 4.0.4, > >>>> that fixes concurrency issues on mvel core, so if you aren't using it > >>>> please do an update and try test against your environment. > >>>> > >>>> Please let me know if your problems go away when you upgrade. > >>>> > >>>> Thanks > >>>> > >>>> On Jan 22, 2008 11:13 AM, Ingomar Otter <[EMAIL PROTECTED] > >>>> <mailto:[EMAIL PROTECTED]>> wrote: > >>>> > >>>> Folks, > >>>> I am currently trying to scale our implementation by farming out > >>>> request into mutliple threads. I am on a 4 CPU Mac. > >>>> A few things I am wondering about: > >>>> 1. Although I see an increase in CPU load when going from single > >>>> to multi-threaded processing the throughput increased marginally. > >>>> I am pretty sure that my measurements are correct. I have checked > >>>> the GC and this is not the source of congestion. My question here > >>>> is whether Drools is using lot's of synchronization that may > >>>> explain this. > >>>> 2. When I share the RuleBase accross threads (which I think is > >>>> valid?) I get interesting errors during execution. eg: > >>>> > >>>> org.drools.RuntimeDroolsException : Exception executing predicate > >>>> [EMAIL PROTECTED] > >>>> atorg.drools.rule.PredicateConstraint.isAllowedCachedRight( > >>>> PredicateConstraint.java:246) > >>>> at > >>>> > >>>> org.drools.common.TripleBetaConstraints.isAllowedCachedRight( > TripleBetaConstraints.java:200) > >>>> > >>>> atorg.drools.reteoo.JoinNode.assertObject(JoinNode.java:150) > >>>> > >>>> > >>>> atorg.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject( > CompositeObjectSinkAdapter.java:318) > >>>> > >>>> atorg.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java > :153) > >>>> at org.drools.reteoo.Rete.assertObject(Rete.java:175) > >>>> atorg.drools.reteoo.ReteooRuleBase.assertObject > >>>> (ReteooRuleBase.java:192) > >>>> at > >>>> > >>>> org.drools.reteoo.ReteooWorkingMemory.doInsert( > ReteooWorkingMemory.java:71) > >>>> > >>>> at > >>>> > >>>> org.drools.common.AbstractWorkingMemory.insert( > AbstractWorkingMemory.java:909) > >>>> > >>>> > >>>> atorg.drools.common.AbstractWorkingMemory.insert( > AbstractWorkingMemory.java:881) > >>>> > >>>> > >>>> atorg.drools.common.AbstractWorkingMemory.insert( > AbstractWorkingMemory.java:682) > >>>> > >>>> atxxxx.DroolsPD.validate(DroolsPD.java:66) > >>>> at xxxx.DroolsMTRunner.run(DroolsMTRunner.java:30) > >>>> at java.lang.Thread.run(Thread.java:552) > >>>> Caused by: org.mvel.CompileException: cannot invoke getter: > >>>> getSAClass [declr.class: xxx.AbstractSA; act.class: null] > >>>> atorg.mvel.optimizers.impl.refl.GetterAccessor.getValue( > >>>> GetterAccessor.java:52) > >>>> at > >>>> > >>>> org.mvel.optimizers.impl.refl.VariableAccessor.getValue( > VariableAccessor.java:39) > >>>> > >>>> at > >>>> > >>>> org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated( > VariableDeepPropertyNode.java:22) > >>>> > >>>> atorg.mvel.ast.PropertyASTNode.getReducedValueAccelerated( > PropertyASTNode.java:21) > >>>> at > >>>> > >>>> org.mvel.ast.BinaryOperation.getReducedValueAccelerated( > BinaryOperation.java:21) > >>>> > >>>> at org.mvel.MVELRuntime.execute(MVELRuntime.java:88) > >>>> at org.mvel.CompiledExpression.getValue(CompiledExpression.java > :111) > >>>> > >>>> atorg.mvel.MVEL.executeExpression(MVEL.java:235) > >>>> at > >>>> > >>>> org.drools.base.mvel.MVELPredicateExpression.evaluate( > MVELPredicateExpression.java:36) > >>>> > >>>> > >>>> atorg.drools.rule.PredicateConstraint.isAllowedCachedRight( > PredicateConstraint.java:240) > >>>> ... 13 more > >>>> Caused by: java.lang.NullPointerException > >>>> atsun.reflect.GeneratedMethodAccessor6.invoke (Unknown Source) > >>>> atsun.reflect.DelegatingMethodAccessorImpl.invoke( > >>>> DelegatingMethodAccessorImpl.java:25) > >>>> atjava.lang.reflect.Method.invoke( Method.java:324) > >>>> at > >>>> > >>>> org.mvel.optimizers.impl.refl.GetterAccessor.getValue( > GetterAccessor.java:42) > >>>> > >>>> ... 22 more > >>>> > >>>> Details: > >>>> * I use StatelessSessions which are private to the threads > >>>> * No data is shared between threads (with the exception of the > >>>> RuleBase, as outline above) > >>>> * I am on JDK 1.5 > >>>> > >>>> I would be grateful for any pointers for 'correct' use of Drools > >>>> in an MT environment. > >>>> Cheers, > >>>> Ingomar > >>>> > >>>> > >>>> Ingomar Otter > >>>> Chief Technology Officer > >>>> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > >>>> Mobile: +49 172 2367867 > >>>> > >>>> Valtech GmbH > >>>> Bahnstraße 16 > >>>> 40212 Düsseldorf > >>>> Germany > >>>> > >>>> Phone: +49 (0)211 179237-0 > >>>> Fax: +49 211 179237-19 > >>>> > >>>> www.valtech.de <http://www.valtech.de/> > >>>> > >>>> Geschäftsführer: Ingo Kriescher > >>>> Amtsgericht Düsseldorf HRB48672 > >>>> > >>>> > >>>> _______________________________________________ > >>>> rules-users mailing list > >>>> rules-users@lists.jboss.org <mailto:rules-users@lists.jboss.org> > >>>> https://lists.jboss.org/mailman/listinfo/rules-users > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Fernando Meyer http://fmeyer.org > >>>> JBoss Rules Core Developer > >>>> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > >>>> > ------------------------------------------------------------------------ > >>>> > >>>> _______________________________________________ > >>>> 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 > -- Edson Tirelli JBoss Drools Core Development Office: +55 11 3529-6000 Mobile: +55 11 9287-5646 JBoss, a division of Red Hat @ www.jboss.com
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users