mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-08-15 19:56:06 +00:00
Merge pull request #10251 from Lyndon-Li/pvr-restorer-could-run-concurrently
Fix wrong node-agent check result when PVR restorer run concurrently
This commit is contained in:
@@ -0,0 +1 @@
|
||||
Fix wrong node-agent check result when PVR restorer run concurrently
|
||||
@@ -63,10 +63,9 @@ type restorer struct {
|
||||
kubeClient kubernetes.Interface
|
||||
crClient ctrlclient.Client
|
||||
|
||||
resultsLock sync.Mutex
|
||||
results map[string]chan *velerov1api.PodVolumeRestore
|
||||
nodeAgentCheck chan error
|
||||
log logrus.FieldLogger
|
||||
resultsLock sync.Mutex
|
||||
results map[string]chan *velerov1api.PodVolumeRestore
|
||||
log logrus.FieldLogger
|
||||
}
|
||||
|
||||
func newRestorer(
|
||||
@@ -153,7 +152,7 @@ func (r *restorer) RestorePodVolumes(data RestoreData, tracker *volume.RestoreVo
|
||||
r.results[resultsKey(data.Pod.Namespace, data.Pod.Name)] = resultsChan
|
||||
r.resultsLock.Unlock()
|
||||
|
||||
r.nodeAgentCheck = make(chan error)
|
||||
nodeAgentCheck := make(chan error)
|
||||
|
||||
var (
|
||||
errs []error
|
||||
@@ -217,7 +216,7 @@ func (r *restorer) RestorePodVolumes(data RestoreData, tracker *volume.RestoreVo
|
||||
err = nodeagent.IsRunningInNode(checkCtx, data.Restore.Namespace, nodeName, r.crClient)
|
||||
if err != nil {
|
||||
r.log.WithField("node", nodeName).WithError(err).Error("node-agent pod is not running in node, abort the restore")
|
||||
r.nodeAgentCheck <- errors.Wrapf(err, "node-agent pod is not running in node %s", nodeName)
|
||||
nodeAgentCheck <- errors.Wrapf(err, "node-agent pod is not running in node %s", nodeName)
|
||||
}
|
||||
}
|
||||
}()
|
||||
@@ -235,7 +234,7 @@ ForEachVolume:
|
||||
errs = append(errs, errors.Errorf("pod volume restore canceled: %s", res.Status.Message))
|
||||
}
|
||||
tracker.TrackPodVolume(res)
|
||||
case err := <-r.nodeAgentCheck:
|
||||
case err := <-nodeAgentCheck:
|
||||
errs = append(errs, err)
|
||||
break ForEachVolume
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user