Skip to content

Commit 5a64c50

Browse files
authored
fix: semaphore configmap retry on transient error. Fixes #14335 (#14336)
Signed-off-by: Tianchu Zhao <evantczhao@gmail.com>
1 parent fa51c6d commit 5a64c50

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

workflow/controller/controller.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,10 @@ import (
4848
"github.com/argoproj/argo-workflows/v3/util/deprecation"
4949
"github.com/argoproj/argo-workflows/v3/util/env"
5050
"github.com/argoproj/argo-workflows/v3/util/errors"
51+
errorsutil "github.com/argoproj/argo-workflows/v3/util/errors"
52+
"github.com/argoproj/argo-workflows/v3/util/retry"
5153
"github.com/argoproj/argo-workflows/v3/util/telemetry"
54+
waitutil "github.com/argoproj/argo-workflows/v3/util/wait"
5255
"github.com/argoproj/argo-workflows/v3/workflow/artifactrepositories"
5356
"github.com/argoproj/argo-workflows/v3/workflow/common"
5457
controllercache "github.com/argoproj/argo-workflows/v3/workflow/controller/cache"
@@ -386,7 +389,13 @@ func (wfc *WorkflowController) createSynchronizationManager(ctx context.Context)
386389
if err != nil {
387390
return 0, err
388391
}
389-
configMap, err := wfc.kubeclientset.CoreV1().ConfigMaps(lockName.Namespace).Get(ctx, lockName.ResourceName, metav1.GetOptions{})
392+
configmapsIf := wfc.kubeclientset.CoreV1().ConfigMaps(lockName.Namespace)
393+
var configMap *apiv1.ConfigMap
394+
err = waitutil.Backoff(retry.DefaultRetry, func() (bool, error) {
395+
var err error
396+
configMap, err = configmapsIf.Get(ctx, lockName.ResourceName, metav1.GetOptions{})
397+
return !errorsutil.IsTransientErr(err), err
398+
})
390399
if err != nil {
391400
return 0, err
392401
}

0 commit comments

Comments
 (0)