From 610d0300a9e4c7206c5ad4deb854c0086eb61cb2 Mon Sep 17 00:00:00 2001 From: William Dillon Date: Thu, 26 Feb 2026 20:02:59 -0500 Subject: [PATCH] fixing bug - edge case when jitter == math.MinInt64 --- utilities/jitter.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/utilities/jitter.go b/utilities/jitter.go index 40a409d..77ee8d3 100644 --- a/utilities/jitter.go +++ b/utilities/jitter.go @@ -37,6 +37,16 @@ func satSub(a, b int64) int64 { } } +func absDurationSat(d time.Duration) time.Duration { + if d >= 0 { + return d + } + if d == time.Duration(math.MinInt64) { + return time.Duration(math.MaxInt64) + } + return -d +} + func DefaultApplyJitter(pauseDuration time.Duration, jitter time.Duration) time.Duration { switch { case pauseDuration <= 0: @@ -44,7 +54,7 @@ func DefaultApplyJitter(pauseDuration time.Duration, jitter time.Duration) time. case jitter == 0: return pauseDuration case jitter < 0: - jitter = -jitter + jitter = absDurationSat(jitter) case jitter > pauseDuration: pauseDuration, jitter = jitter, pauseDuration }