Fix the deadlock between rollout and self healing controller #259
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.
There is a deadlock issue when specify composition should ignore side effect.
Initially, the resource slice self-healing controller detects that no resource slice exists and sets the composition's pending re-synthesis time to trigger the re-creation of the resource slice. Subsequently, the rollout controller removes the pending re-synthesis time upon finding that the composition is configured to ignore side effects.
The self-healing controller then receives the composition update event and still finding no resource slice, sets the pending re-synthesis time again to re-create the resource slice. The rollout controller receives the subsequent update event and removes the pending re-synthesis time again to ignore side effects.