-
Bug
-
Resolution: Done
-
Major
-
7.0.0
-
-
-
-
-
-
DR2
-
Parallel agenda currently supports only a limited subset of Drools features. If the engine have to process something, which can not be processed in parallel, then the engine should fallback to a single thread mode and write warning [1]. However, it does not work correctly. Here is the list of failing community tests [2]. These tests fail when the property "drools.multithreadEvaluation=true" is set.
There are three patterns which often appears:
1. UnsupportedOperationException - For example in "org.drools.core.common.CompositeDefaultAgenda.removeEagerRuleAgendaItem". This will be probably implemented later. However, I would suggest to not throw exception. It would be better to fallback to single thread mode.
2. Assertion errors: For example tests in "TraitFieldsAndLegacyClassesTest.testTraitFieldUpdate". It seems that parallel agenda does not fallback to single thread mode in some cases.
3. Null pointer exceptions in engine. For example org.drools.compiler.integrationtests.MiscTest.testAssertRetract fails with following exception:
java.lang.NullPointerException: null at org.drools.core.reteoo.CompositeObjectSinkAdapter$HashKey.
[1] https://github.com/droolsjbpm/kie-docs/blob/master/docs/drools-docs/topics/ReleaseNotes/ReleaseNotesDrools.7.0.0.Final-section.adoc#multithreaded-rule-engine
[2] https://docs.google.com/a/redhat.com/spreadsheets/d/1Te7yx5_Rc_Ht0QJORRgpRARzQl1DweNn9AHQU0fdqM0/edit?usp=sharing