Skip to main content
rajarajeswarib0001
August 29, 2024
Question

The Memory Circuit Breaker prevented this evaluation from completing due to insufficient resources.

  • August 29, 2024
  • 1 reply
  • 0 views

Our user case is, We have an UI to manage the tasks where we have 2 dropdowns, Task Name and Precedent task name as shown below.
Task Name -> Precedent Task Name
Task A        -> ------
Task B       -> Task A
Task C       -> Task B

Condition is,
Task B can be dependent on Task A but Task A cannot be dependent on Task B
Tasks B & C can be dependent on Task A but Task A cannot be dependent on Task B or C
Task B can be dependent on Task A and Task C can be dependent on Task B, but Task A cannot be dependent on Task C.

Basically the requirement is to prevent creating circular logic among tasks. Since Task B is dependent on Task A, only if Task A is completed then Task B can be enabled. When user selects Task B or Task C as the precedent task for Task A, then a circular dependency will be created, hence to avoid this when user select B or C as Precedent task for Task A in UI, an error message should be shown.

Today we have 3 levels, in future we may have more levels, hence we have implemented the logic for N levels using recursive call, but now the problem is, we are facing Circuit Breaker issue. Is there any other option to achieve this N level logic other than recursive call please suggest.

Error:
Expression evaluation error [evaluation ID = 9cb0a:86a20] in rule 'abc_retrieveallprecedenttasks' (called by rules 'abc_retrieveallprecedenttasks' > 'abc_configurenewtaskforworkflow' > 'abc_manageworkflow') : The Memory Circuit Breaker prevented this evaluation from completing due to insufficient resources. Please contact your system administrator. (APNX-1-4510-000) (APNX-1-4510-000)

    1 reply

    stefanhelzle0001
    August 29, 2024

    A good approach is, to create a list of processed items during iterations. For each new recursion, check whether the new item already is in that list, and skip it in that case. This should help you break these cycles.