Uploaded image for project: 'JBoss BRMS Platform'
  1. JBoss BRMS Platform
  2. RHBRMS-2508

Event expiration cycles itself when expiring events from large set of same rules with "after" operator

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • CR2

      When using many same rules with after, event expiration cycles itself.
      Using 64 copies of this rule [1], code here [2] cycles itself. I think it is because when it searches through child and peer tuples, it can find already expired tuple and it tries to expire it again. So the problem is either there or in that there is some cycle in tuple chain.

      The commit with code from [2] is part of 6.3.2.CR1 tag sync-6.4.x-2016.07.07.

      Reproducer attached in PR in linked upstream issue.

      [1]
      import org.drools.testcoverage.common.model.EventA;
      import org.drools.testcoverage.common.model.EventB;
      declare org.drools.testcoverage.common.model.EventA @role( event ) @duration(duration) end declare org.drools.testcoverage.common.model.EventB @role( event ) @duration(duration) end rule R0 when
      $event1: org.drools.testcoverage.common.model.EventA()
      $event2: org.drools.testcoverage.common.model.EventB(this != $event1, this after [1,10] $event1)
      then end
      [2] https://github.com/droolsjbpm/drools/blob/6.4.x/drools-core/src/main/java/org/drools/core/impl/StatefulKnowledgeSessionImpl.java#L1820

              mfusco@redhat.com Mario Fusco
              tzimanyi@redhat.com Tibor Zimányi
              Archiver:
              rhn-support-ceverson Clark Everson
              Marek Winkler Marek Winkler (Inactive)
              Marek Winkler Marek Winkler (Inactive)

                Created:
                Updated:
                Resolved:
                Archived: