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

Errors in Phreak under heavy and multi threaded load

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major 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

      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)

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

              Created:
              Updated:
              Resolved: