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

Errors in Phreak under heavy and multi threaded load

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • None
    • 6.3.0.Final, 6.4.0.Final
    • core engine
    • None
    • Hide

      Example attached. Run with
      mvn clean test -DTEST_THREADS=100
      or modify the TEST_THREADS until you see the errors in your machine

      Show
      Example attached. Run with mvn clean test -DTEST_THREADS=100 or modify the TEST_THREADS until you see the errors in your machine
    • Workaround Exists
    • Hide

      To use ReteOO

      Show
      To use ReteOO
    • NEW
    • NEW

    Description

      Several threads are started, each one starts 1 jbpm process containing rule(s) task(s).
      If the threads are few, everything works fine. Under heavy load nullPointerExceptions are thown most of the time, less frequently fireAllRules never ends and CPU remains at 100%.

      Aparently the setFocus method used by rule tasks is related to the problem.

      The most comon error is:
      Caused by: java.lang.NullPointerException
      at org.drools.core.common.LeftTupleSetsImpl.removeInsert(LeftTupleSetsImpl.java:141)
      at org.drools.core.common.LeftTupleSetsImpl.addDelete(LeftTupleSetsImpl.java:80)
      at org.drools.core.reteoo.LeftInputAdapterNode.doDeleteSegmentMemory(LeftInputAdapterNode.java:295)
      at org.drools.core.reteoo.LeftInputAdapterNode.doDeleteObject(LeftInputAdapterNode.java:266)
      at org.drools.core.reteoo.LeftInputAdapterNode.retractLeftTuple(LeftInputAdapterNode.java:361)
      at org.drools.core.reteoo.ObjectTypeNode.doRetractObject(ObjectTypeNode.java:334)
      at org.drools.core.reteoo.ObjectTypeNode.retractObject(ObjectTypeNode.java:317)
      at org.drools.core.reteoo.EntryPointNode.propagateRetract(EntryPointNode.java:358)
      at org.drools.core.phreak.PropagationEntry$Delete.execute(PropagationEntry.java:172)
      at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:96)
      at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:69)
      at org.drools.core.impl.StatefulKnowledgeSessionImpl.flushPropagations(StatefulKnowledgeSessionImpl.java:1993)

      Attachments

        Issue Links

          Activity

            People

              mfusco@redhat.com Mario Fusco
              cavicop Jose Cavieres (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: