]
Mario Fusco updated DROOLS-5198:
--------------------------------
Sprint: (was: 2020 Week 13-15 (from Mar 23))
Infinite loop induced by backward chaining
------------------------------------------
Key: DROOLS-5198
URL:
https://issues.redhat.com/browse/DROOLS-5198
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 7.34.0.Final
Reporter: Ivan Zilotti
Assignee: Mario Fusco
Priority: Major
I could not find an out-of-the-box mechanism in Drools for stopping loops induced by
backward chaining. I've found some research e.g., [Avoiding Infinite Loops in
Rule-Based Systems with Backward
Chaining|http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.38.8356...],
indicating this is a recurring problem.
When undeterred, these loops cause an OutOfMemoryError.
I've already tried to:
* Find configuration options in Drools to limit the behavior, but apparently there
are't any;
* Step through the code, trying to find ways to break the recursive behavior;
* Change my rules to check for possible loops but that resulted either in partial facts
being added to working memory (WM) or computationally expensive logic.