There should be a way to limit workflow executions

Bug #1789655 reported by Xavier Hardy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mistral
Confirmed
High
Renat Akhmerov

Bug Description

It is possible to overload the messaging queues, engines and executors, using the following techniques:

- workflow task loops

tasks:
  looped_task:
    on-success:
      - looped_tasks

- with-items with an unexpected list length

tasks:
  looped_task:
    with-items: some_item in <% $.some_very_long_list %>
    action: std.echo
    # the faster the action to execute, the higher the chances to block the system

- high number of concurrent executions

tasks:
  looped_task:
    concurrency: 10000
    with-items: some_item in <% $.some_very_long_list %>
    action: std.echo
    # the faster the action to execute, the higher the chances to block the system

To prevent this, we must be able to set limits (or to change them if they exists but are hard-coded) to the following items for Mistral globally (not only for a particular workflow):
- task recursion limit (maximum action/workflow executions per task maybe?)
- maximum item list size
- maximum concurrency

Dougal Matthews (d0ugal)
summary: - Mistral backend DoS through tasks
+ There should be a way to limit workflow executions
Changed in mistral:
status: New → Confirmed
importance: Undecided → High
milestone: none → stein-1
Dougal Matthews (d0ugal)
Changed in mistral:
milestone: stein-1 → stein-2
Changed in mistral:
milestone: stein-2 → stein-3
Changed in mistral:
milestone: stein-3 → train-1
Changed in mistral:
milestone: train-1 → ussuri-1
Changed in mistral:
milestone: ussuri-1 → ussuri-2
Changed in mistral:
assignee: nobody → Renat Akhmerov (rakhmerov)
Changed in mistral:
milestone: ussuri-2 → ussuri-3
Changed in mistral:
milestone: ussuri-3 → victoria-1
Changed in mistral:
milestone: victoria-1 → wallaby-1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.