You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a PipelineRun is completed the final status it records should be considered immutable and not change after that point.
Actual Behavior
When a Pipeline includes Pipeline Results there is a slim chance that its PipelineRuns' final status can be overwritten. This is because the PipelineRun reconciler does not process Pipeline Results until after the Run is in a completed state. The code for this is here:
which is inside a block guarded by if pr.IsDone(). Despite this the updatePipelineResults func can change the state of the PipelineRun to indicate a failure. This therefore has the opportunity to modify an existing completed status and overwrite information pertinent to the user.
Expected Behavior
When a PipelineRun is completed the final status it records should be considered immutable and not change after that point.
Actual Behavior
When a Pipeline includes Pipeline Results there is a slim chance that its PipelineRuns' final status can be overwritten. This is because the PipelineRun reconciler does not process Pipeline Results until after the Run is in a completed state. The code for this is here:
pipeline/pkg/reconciler/pipelinerun/pipelinerun.go
Lines 326 to 328 in f121db9
That linked function,
updatePipelineResults()
is called frompipeline/pkg/reconciler/pipelinerun/pipelinerun.go
Line 179 in f121db9
if pr.IsDone()
. Despite this theupdatePipelineResults
func can change the state of the PipelineRun to indicate a failure. This therefore has the opportunity to modify an existing completed status and overwrite information pertinent to the user.This issue was created in response to feedback on PR 3472: https://github.com/tektoncd/pipeline/pull/3472/files#r552632569
The text was updated successfully, but these errors were encountered: