From e915d7d55bca47fd9ca6357d63e1905c83e72b23 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Tue, 17 Mar 2020 18:27:17 +0800 Subject: [PATCH] fix: policy fetcher not retry after initial failure --- pkg/cloudcommon/policy/policy.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkg/cloudcommon/policy/policy.go b/pkg/cloudcommon/policy/policy.go index bdf65cf141..dc1365b0e6 100644 --- a/pkg/cloudcommon/policy/policy.go +++ b/pkg/cloudcommon/policy/policy.go @@ -16,6 +16,7 @@ package policy import ( "context" + "runtime/debug" "sort" "strings" "sync" @@ -168,11 +169,6 @@ func (manager *SPolicyManager) start(refreshInterval time.Duration, retryInterva } manager.cache = hashcache.NewCache(2048, manager.refreshInterval/2) - err := manager.doSync() - if err != nil { - log.Errorf("doSync error %s", err) - return - } manager.SyncOnce() } @@ -182,9 +178,16 @@ func (manager *SPolicyManager) SyncOnce() { } func (manager *SPolicyManager) doSync() error { + defer func() { + if r := recover(); r != nil { + log.Errorf("policyManager doSync error %s", r) + debug.PrintStack() + } + }() + policies, err := DefaultPolicyFetcher() if err != nil { - // log.Errorf("sync rbac policy failed: %s", err) + log.Errorf("sync rbac policy failed: %s", err) return errors.Wrap(err, "DefaultPolicyFetcher") }