-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unscheduled Runs shouldn't be included in full status #5287
Unscheduled Runs shouldn't be included in full status #5287
Conversation
/assign @afrittoli |
The following is the coverage report on the affected files.
|
86bfe80
to
3a20f8b
Compare
The following is the coverage report on the affected files.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
/approve
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: afrittoli The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/test pull-tekton-pipeline-alpha-integration-tests |
/retest |
cc @tektoncd/core-maintainers - we're going to be cherry-picking this back to 0.37 and 0.38, so an lgtm would be much appreciated. =) |
3a20f8b
to
8cdf1e7
Compare
The following is the coverage report on the affected files.
|
Fixes tektoncd#5282 When removing conditions, I accidentally made `GetRunsStatus` not skip including custom task `ResolvedPipelineTask`s without `Run`s in the `PipelineRun.Status.Runs` map. This resulted in cancellation failing, because the cancellation logic tries to patch each `Run` or `TaskRun` in the `PipelineRun` status (either in the `Runs` and `TaskRuns` maps for full embedded status, or `ChildReferences` for minimal or both embedded status). Unscheduled `PipelineTask`s for `Task`s were already properly excluded from the status map, and `ChildReferences` was fine either way, but due to the oversight I mentioned above, unscheduled `PipelineTask`s for custom tasks _were_ included in the full embedded status map, and cancellation would error due to that. Signed-off-by: Andrew Bayer <[email protected]>
8cdf1e7
to
3b93c23
Compare
The following is the coverage report on the affected files.
|
@@ -2381,6 +2381,15 @@ spec: | |||
}}, | |||
TaskRef: &v1beta1.TaskRef{Name: "unit-test-task"}, | |||
} | |||
unscheduledPipelineTask := v1beta1.PipelineTask{ | |||
Name: "unit-test-2", | |||
WhenExpressions: []v1beta1.WhenExpression{{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the significance of whenExpression
in the test?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
None - I just copy-pasted the task above.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will be great to avoid such copy/paste specially given that it does not bring any value to the test, thanks 🙏
thanks @abayer 👍 /lgtm |
Fixes tektoncd#5282 When removing conditions, I accidentally made `GetRunsStatus` not skip including custom task `ResolvedPipelineTask`s without `Run`s in the `PipelineRun.Status.Runs` map. This resulted in cancellation failing, because the cancellation logic tries to patch each `Run` or `TaskRun` in the `PipelineRun` status (either in the `Runs` and `TaskRuns` maps for full embedded status, or `ChildReferences` for minimal or both embedded status). Unscheduled `PipelineTask`s for `Task`s were already properly excluded from the status map, and `ChildReferences` was fine either way, but due to the oversight I mentioned above, unscheduled `PipelineTask`s for custom tasks _were_ included in the full embedded status map, and cancellation would error due to that. cherry-picked from tektoncd#5287, with some additional modifications to child reference population for custom tasks without a `Run` which have been fixed in v0.38.x. Signed-off-by: Andrew Bayer <[email protected]>
Fixes #5282 When removing conditions, I accidentally made `GetRunsStatus` not skip including custom task `ResolvedPipelineTask`s without `Run`s in the `PipelineRun.Status.Runs` map. This resulted in cancellation failing, because the cancellation logic tries to patch each `Run` or `TaskRun` in the `PipelineRun` status (either in the `Runs` and `TaskRuns` maps for full embedded status, or `ChildReferences` for minimal or both embedded status). Unscheduled `PipelineTask`s for `Task`s were already properly excluded from the status map, and `ChildReferences` was fine either way, but due to the oversight I mentioned above, unscheduled `PipelineTask`s for custom tasks _were_ included in the full embedded status map, and cancellation would error due to that. cherry-picked from #5287, with some additional modifications to child reference population for custom tasks without a `Run` which have been fixed in v0.38.x. Signed-off-by: Andrew Bayer <[email protected]>
Changes
Fixes #5282
When removing conditions, I accidentally made
GetRunsStatus
not skip including custom taskResolvedPipelineTask
s withoutRun
s in thePipelineRun.Status.Runs
map. This resulted in cancellation failing, because the cancellation logic tries to patch eachRun
orTaskRun
in thePipelineRun
status (either in theRuns
andTaskRuns
maps for full embedded status, orChildReferences
for minimal or both embedded status). UnscheduledPipelineTask
s forTask
s were already properly excluded from the status map, andChildReferences
was fine either way, but due to the oversight I mentioned above, unscheduledPipelineTask
s for custom tasks were included in the full embedded status map, and cancellation would error due to that.This will need to be cherry-picked to v0.37.x and v0.38.x, since the issue was a regression.
/kind bug
Submitter Checklist
As the author of this PR, please check off the items in this checklist:
functionality, content, code)
/kind <type>
. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tepRelease Notes