Merge branch 'main' into fix/backup-name-validation

This commit is contained in:
R4mbo
2026-08-14 10:43:58 +05:30
committed by GitHub
3 changed files with 4 additions and 3 deletions
+1
View File
@@ -0,0 +1 @@
Fix a potential deadlock when resultsLock is held by the informer but blocked on resChan because the early quit of RestorePodVolumes
+3 -3
View File
@@ -105,9 +105,9 @@ func newRestorer(
if pvr.Status.Phase == velerov1api.PodVolumeRestorePhaseCompleted || pvr.Status.Phase == velerov1api.PodVolumeRestorePhaseFailed || pvr.Status.Phase == velerov1api.PodVolumeRestorePhaseCanceled {
r.resultsLock.Lock()
defer r.resultsLock.Unlock()
resChan, ok := r.results[resultsKey(pvr.Spec.Pod.Namespace, pvr.Spec.Pod.Name)]
r.resultsLock.Unlock()
if !ok {
log.Errorf("No results channel found for pod %s/%s to send pod volume restore %s/%s on", pvr.Spec.Pod.Namespace, pvr.Spec.Pod.Name, pvr.Namespace, pvr.Name)
return
@@ -146,7 +146,7 @@ func (r *restorer) RestorePodVolumes(data RestoreData, tracker *volume.RestoreVo
r.repoLocker.Lock(repo.Name)
defer r.repoLocker.Unlock(repo.Name)
resultsChan := make(chan *velerov1api.PodVolumeRestore)
resultsChan := make(chan *velerov1api.PodVolumeRestore, len(volumesToRestore))
r.resultsLock.Lock()
r.results[resultsKey(data.Pod.Namespace, data.Pod.Name)] = resultsChan