Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-6352

Investigate ParallelEvaluationTest error in CI Build Chain

    XMLWordPrintable

    Details

    • Sprint:
      2021 Week 19-21 (from May 10)
    • Story Points:
      2
    • Docs QE Status:
      NEW
    • QE Status:
      NEW

      Description

      Recently we constantly see a failure with ParallelEvaluationTest.testFireUntilHaltWithExpiration in CI Build Chain (ubuntu/windows and Java 8/11)

      2021-05-14T09:15:25.5460826Z 09:15:25.543 [Time-limited test] WARN o.drools.core.impl.KnowledgeBaseImpl.disableMultithreadEvaluation:1009 - The rete network cannot be partitioned: disabling multithread evaluation^M
      2021-05-14T09:15:25.5492217Z [cheddar]^M
      2021-05-14T09:15:25.5516071Z [ERROR] Tests run: 20, Failures: 1, Errors: 0, Skipped: 2, Time elapsed: 5.657 s <<< FAILURE! - in org.drools.mvel.integrationtests.ParallelEvaluationTest^M
      2021-05-14T09:15:25.5518436Z [ERROR] testFireUntilHaltWithExpiration[KieBase type=CLOUD_IDENTITY](org.drools.mvel.integrationtests.ParallelEvaluationTest) Time elapsed: 0.16 s <<< FAILURE!^M
      2021-05-14T09:15:25.5519985Z java.lang.AssertionError^M
      2021-05-14T09:15:25.5534091Z at org.junit.Assert.fail(Assert.java:87)^M
      2021-05-14T09:15:25.5535117Z at org.junit.Assert.assertTrue(Assert.java:42)^M
      2021-05-14T09:15:25.5535967Z at org.junit.Assert.assertTrue(Assert.java:53)^M
      2021-05-14T09:15:25.5538333Z at org.drools.mvel.integrationtests.ParallelEvaluationTest.testFireUntilHaltWithExpiration(ParallelEvaluationTest.java:582)^M
      2021-05-14T09:15:25.5545496Z at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)^M
      2021-05-14T09:15:25.5555942Z at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)^M
      2021-05-14T09:15:25.5557966Z at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)^M
      2021-05-14T09:15:25.5559410Z at java.lang.reflect.Method.invoke(Method.java:498)^M
      2021-05-14T09:15:25.5568210Z at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)^M
      2021-05-14T09:15:25.5575590Z at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)^M
      2021-05-14T09:15:25.5577540Z at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)^M
      2021-05-14T09:15:25.5591195Z at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)^M
      2021-05-14T09:15:25.5593165Z at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:288)^M
      2021-05-14T09:15:25.5595080Z at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:282)^M
      2021-05-14T09:15:25.5600934Z at java.util.concurrent.FutureTask.run(FutureTask.java:266)^M
      2021-05-14T09:15:25.5607990Z at java.lang.Thread.run(Thread.java:748)^M
       

      This rule causes partition bias in CompositePartitionAwareObjectSinkAdapter.partitionedPropagators. For example, if you have 8 core CPU (KieExecutors.Pool.SIZE = 8), partitionedPropagators size is 8. But during rete network construction, only odd arrays are populated so getUsedPartitionsCount() returns 4. At the moment, CI Build Chain can use 2 cores so getUsedPartitionsCount() returns 1. It results in "The rete network cannot be partitioned: disabling multithread evaluation"

        Attachments

          Activity

            People

            Assignee:
            tkobayashi Toshiya Kobayashi
            Reporter:
            tkobayashi Toshiya Kobayashi
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: