From a74b631fec86b789cc01434e0d69c2b2578d79d4 Mon Sep 17 00:00:00 2001 From: Oded Viner Date: Tue, 18 Feb 2025 17:03:31 +0200 Subject: [PATCH] Fix Negative Requeue Duration in getStatusCheckDelay of DRPlacementControl Reconciler Signed-off-by: Oded Viner --- internal/controller/drplacementcontrol_controller.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/controller/drplacementcontrol_controller.go b/internal/controller/drplacementcontrol_controller.go index 08c268fa8..4dfe1fbcf 100644 --- a/internal/controller/drplacementcontrol_controller.go +++ b/internal/controller/drplacementcontrol_controller.go @@ -1257,7 +1257,10 @@ func (r *DRPlacementControlReconciler) getStatusCheckDelay( // iteration of the reconcile loop. Hence, the next attempt to update the // status should be after the remaining duration of this polling interval has // elapsed: (beforeProcessing + StatusCheckDelay - time.Now()) - return time.Until(beforeProcessing.Add(StatusCheckDelay)) + // If the scheduled time is already in the past, requeue immediately. + remaining := time.Until(beforeProcessing.Add(StatusCheckDelay)) + + return max(0, remaining) } // updateDRPCStatus updates the DRPC sub-resource status with,