From 963081e096752702db7040543b1e9f2eb636df50 Mon Sep 17 00:00:00 2001 From: Ambor Date: Tue, 21 Mar 2023 17:08:45 +0800 Subject: [PATCH] fix: ending retry loop when the request canceled for the choosePod (#2731) Signed-off-by: saltbo --- pkg/executor/executortype/poolmgr/gp.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/executor/executortype/poolmgr/gp.go b/pkg/executor/executortype/poolmgr/gp.go index f77678cb88..38acee364a 100644 --- a/pkg/executor/executortype/poolmgr/gp.go +++ b/pkg/executor/executortype/poolmgr/gp.go @@ -292,7 +292,12 @@ func (gp *GenericPool) choosePod(ctx context.Context, newLabels map[string]strin patch := fmt.Sprintf(`{"metadata":{"annotations":%v, "labels":%v}}`, string(annotationPatch), string(labelPatch)) logger.Info("relabel pod", zap.String("pod", patch)) newPod, err := gp.kubernetesClient.CoreV1().Pods(chosenPod.Namespace).Patch(ctx, chosenPod.Name, k8sTypes.StrategicMergePatchType, []byte(patch), metav1.PatchOptions{}) - if err != nil { + if err != nil && errors.Is(err, context.Canceled) { + // ending retry loop when the request canceled + gp.readyPodQueue.Done(key) + gp.readyPodQueue.AddAfter(key, expoDelay) + return "", nil, errors.Errorf("failed to relabel pod: %s", err) + } else if err != nil { logger.Error("failed to relabel pod", zap.Error(err), zap.String("pod", chosenPod.Name), zap.Duration("delay", expoDelay)) gp.readyPodQueue.Done(key) gp.readyPodQueue.AddAfter(key, expoDelay)