Consider this scenario:
- At
T0, user creates a CE, which leads to a successful installation:
Progressing=True/Succeeded
lastTransitionTime=T0
- Much later at
T100, user modifies the CE to ask for a non-existent version:
Progressing=True/Retrying
lastTransitionTime=T0 (because this only changes when status changes)
What currently happens at T100+progressDeadlineMinutes is.... nothing. We should exceed the deadline at that point, but there is nothing in the CE API anywhere that records when we've actually started progressing from steady state again.
If we change (1) such that it results in Progressing=False/Succeeded, then (2) would transition to Progressing=True, which means lastTransitionTime would also be set to T100, which would mean would could close that scenario's progressing deadline bug by setting Progressing=False/ProgressDeadlineExceeded, which we wouldn't subsequently change until we successfully resolve/apply the COS again.
Originally posted by @joelanford in #2810 (comment)
Consider this scenario:
T0, user creates a CE, which leads to a successful installation:Progressing=True/SucceededlastTransitionTime=T0T100, user modifies the CE to ask for a non-existent version:Progressing=True/RetryinglastTransitionTime=T0(because this only changes when status changes)What currently happens at
T100+progressDeadlineMinutesis.... nothing. We should exceed the deadline at that point, but there is nothing in the CE API anywhere that records when we've actually started progressing from steady state again.If we change (1) such that it results in
Progressing=False/Succeeded, then (2) would transition toProgressing=True, which meanslastTransitionTimewould also be set toT100, which would mean would could close that scenario's progressing deadline bug by settingProgressing=False/ProgressDeadlineExceeded, which we wouldn't subsequently change until we successfully resolve/apply the COS again.Originally posted by @joelanford in #2810 (comment)