salt icon indicating copy to clipboard operation
salt copied to clipboard

[master] Don't block when evaluating requisites of parallel states

Open lkubb opened this issue 1 year ago • 0 comments

What does this PR do?

Evaluates requisites between parallel states less synchronously.

What issues does this PR fix or reference?

Fixes https://github.com/saltstack/salt/issues/59959

Previous Behavior

A state with unmet requisites marked as parallel would block state execution until all requisites were met, i.e. its requisites would be evaluated synchronously.

New Behavior

Execution of a parallel state with unmet requisites is postponed, allowing other parallel states with met dependencies to be started immediately.

This does not implement complete parallelization of requisite checks. The stack of postponed parallel states is iterated over after each single state execution, meaning a non-parallel state in between causes parallel ones whose dependencies finish while it is executing to be started only after it has finished.

Merge requirements satisfied?

[NOTICE] Bug fixes or features added to Salt require tests.

  • [ ] Docs
  • [x] Changelog - https://docs.saltproject.io/en/master/topics/development/changelog.html
  • [x] Tests written/updated

Commits signed with GPG?

Yes

lkubb avatar Oct 10 '24 14:10 lkubb