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.
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 > > -- View this message in context: http://www.nabble.com/Drools-low-concurrency-high-synchronization--%21NOSIG%21-tp15018811p16020406.html Sent from the drools - user mailing list archive at Nabble.com. _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users