fix: Fix calculating SelfHealBackOff delay when exceeding maximum (#20976)#20978
fix: Fix calculating SelfHealBackOff delay when exceeding maximum (#20976)#20978pasha-codefresh merged 2 commits intoargoproj:masterfrom
Conversation
❌ Preview Environment deleted from BunnyshellAvailable commands (reply to this comment):
|
916f553 to
e249bae
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #20978 +/- ##
==========================================
- Coverage 55.03% 54.99% -0.04%
==========================================
Files 324 324
Lines 55466 55467 +1
==========================================
- Hits 30526 30506 -20
- Misses 22330 22343 +13
- Partials 2610 2618 +8 ☔ View full report in Codecov by Sentry. |
Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz>
Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz>
|
Hi, is anything missing in this PR before it could be accepted? |
| backOff.Steps = int(app.Status.OperationState.Operation.Sync.SelfHealAttemptsCount) | ||
| var delay time.Duration | ||
| for backOff.Steps > 0 { | ||
| steps := backOff.Steps |
There was a problem hiding this comment.
Yeah, it happens because
next = time.Duration(float64(duration) * factor)
if cap > 0 && next > cap {
next = cap
steps = 0
}
Inside backoff library, it is marking steps as 0 and setup next with correct value, and just because of backOff.Steps > 0 we never reach last iteration.
Just leaving as explanation for future
There was a problem hiding this comment.
You still potentially can pass max int value as backoff , but it will not have any performance impact, because here exit in the function if steps are 0
There was a problem hiding this comment.
Hovewer we can change the loop a bit, but i think it is overcomplicate it without significant benefit
for i := 0; i < steps; i++ {
delay = backOff.Step()
if i != steps - 1 && backOff.Steps == 0 {
delay = backOff.Duration
break
}
}
|
LGTM, thank you |
…goproj#20976) (argoproj#20978) * test: fix TestSelfHealExponentialBackoff to test exceeding Backoff.Cap Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> * fix: fix calculating SelfHealBackOff delay when exceeding maximum Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> --------- Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> Co-authored-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> Signed-off-by: Brett C. Dudo <brett@dudo.io>
…goproj#20976) (argoproj#20978) * test: fix TestSelfHealExponentialBackoff to test exceeding Backoff.Cap Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> * fix: fix calculating SelfHealBackOff delay when exceeding maximum Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> --------- Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> Co-authored-by: Michal Ryšavý <michal.rysavy@ext.csas.cz>
…goproj#20976) (argoproj#20978) * test: fix TestSelfHealExponentialBackoff to test exceeding Backoff.Cap Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> * fix: fix calculating SelfHealBackOff delay when exceeding maximum Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> --------- Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> Co-authored-by: Michal Ryšavý <michal.rysavy@ext.csas.cz>
…goproj#20976) (argoproj#20978) * test: fix TestSelfHealExponentialBackoff to test exceeding Backoff.Cap Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> * fix: fix calculating SelfHealBackOff delay when exceeding maximum Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> --------- Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> Co-authored-by: Michal Ryšavý <michal.rysavy@ext.csas.cz>
…goproj#20976) (argoproj#20978) * test: fix TestSelfHealExponentialBackoff to test exceeding Backoff.Cap Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> * fix: fix calculating SelfHealBackOff delay when exceeding maximum Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> Signed-off-by: Michal Ryšavý <mrysavy@users.noreply.github.com> --------- Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> Co-authored-by: Michal Ryšavý <michal.rysavy@ext.csas.cz>
…22095, #20978) (#22583) Signed-off-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> Signed-off-by: Blake Pettersson <blake.pettersson@gmail.com> Co-authored-by: Michal Ryšavý <mrysavy@users.noreply.github.com> Co-authored-by: Michal Ryšavý <michal.rysavy@ext.csas.cz> Co-authored-by: Blake Pettersson <blake.pettersson@gmail.com>
Fixes [ISSUE #20976]
This PR fixes calculating of SelfHealBackOff delay when the delay exceeds maximum
Checklist: