Fix deadlock on stage report command handled execution #6302
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does:
SSIA
Why we need it:
The current implementation of the report stage command causes a deadlock.
Here's the problematic flow:
As a result, the WAIT_APPROVAL stage execution finished by plugin and stage status reported successfully, but as a part of stage execution on the piped side (ref: scheduler.go#L357-L358), this report stage's command will hold the piped stage execution routine, thus the stage will run forever (can not process to the next stage or finish deployment).
This change to fix that deadlock.
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?: