mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-04-19 15:25:13 +00:00
Merge pull request #9672 from Lyndon-Li/release-1.18
[1.18] Issue 9659: fix crash on cancel without loading data path #9663
This commit is contained in:
1
changelogs/unreleased/9672-Lyndon-Li
Normal file
1
changelogs/unreleased/9672-Lyndon-Li
Normal file
@@ -0,0 +1 @@
|
||||
Fix issue #9659, in the case that PVB/PVR/DU/DD is cancelled before the data path is really started, call EndEvent to prevent data mover pod from crashing because of delay event distribution
|
||||
@@ -310,6 +310,7 @@ func (r *BackupMicroService) cancelDataUpload(du *velerov2alpha1api.DataUpload)
|
||||
fsBackup := r.dataPathMgr.GetAsyncBR(du.Name)
|
||||
if fsBackup == nil {
|
||||
r.OnDataUploadCancelled(r.ctx, du.GetNamespace(), du.GetName())
|
||||
r.eventRecorder.EndingEvent(du, false, datapath.EventReasonStopped, "Data path for %s exited without start", du.Name)
|
||||
} else {
|
||||
fsBackup.Cancel()
|
||||
}
|
||||
|
||||
@@ -259,8 +259,8 @@ func TestCancelDataUpload(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "no fs backup",
|
||||
expectedEventReason: datapath.EventReasonCancelled,
|
||||
expectedEventMsg: "Data path for data upload fake-data-upload canceled",
|
||||
expectedEventReason: datapath.EventReasonStopped,
|
||||
expectedEventMsg: "Data path for fake-data-upload exited without start",
|
||||
expectedErr: datapath.ErrCancelled,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -288,6 +288,7 @@ func (r *RestoreMicroService) cancelDataDownload(dd *velerov2alpha1api.DataDownl
|
||||
fsBackup := r.dataPathMgr.GetAsyncBR(dd.Name)
|
||||
if fsBackup == nil {
|
||||
r.OnDataDownloadCancelled(r.ctx, dd.GetNamespace(), dd.GetName())
|
||||
r.eventRecorder.EndingEvent(dd, false, datapath.EventReasonStopped, "Data path for %s exited without start", dd.Name)
|
||||
} else {
|
||||
fsBackup.Cancel()
|
||||
}
|
||||
|
||||
@@ -203,8 +203,8 @@ func TestCancelDataDownload(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "no fs restore",
|
||||
expectedEventReason: datapath.EventReasonCancelled,
|
||||
expectedEventMsg: "Data path for data download fake-data-download canceled",
|
||||
expectedEventReason: datapath.EventReasonStopped,
|
||||
expectedEventMsg: "Data path for fake-data-download exited without start",
|
||||
expectedErr: datapath.ErrCancelled,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -307,6 +307,7 @@ func (r *BackupMicroService) cancelPodVolumeBackup(pvb *velerov1api.PodVolumeBac
|
||||
fsBackup := r.dataPathMgr.GetAsyncBR(pvb.Name)
|
||||
if fsBackup == nil {
|
||||
r.OnDataPathCancelled(r.ctx, pvb.GetNamespace(), pvb.GetName())
|
||||
r.eventRecorder.EndingEvent(pvb, false, datapath.EventReasonStopped, "Data path for %s exited without start", pvb.Name)
|
||||
} else {
|
||||
fsBackup.Cancel()
|
||||
}
|
||||
|
||||
@@ -258,8 +258,8 @@ func TestCancelPodVolumeBackup(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "no fs backup",
|
||||
expectedEventReason: datapath.EventReasonCancelled,
|
||||
expectedEventMsg: "Data path for PVB fake-pvb canceled",
|
||||
expectedEventReason: datapath.EventReasonStopped,
|
||||
expectedEventMsg: "Data path for fake-pvb exited without start",
|
||||
expectedErr: datapath.ErrCancelled,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -302,6 +302,7 @@ func (r *RestoreMicroService) cancelPodVolumeRestore(pvr *velerov1api.PodVolumeR
|
||||
fsBackup := r.dataPathMgr.GetAsyncBR(pvr.Name)
|
||||
if fsBackup == nil {
|
||||
r.OnPvrCancelled(r.ctx, pvr.GetNamespace(), pvr.GetName())
|
||||
r.eventRecorder.EndingEvent(pvr, false, datapath.EventReasonStopped, "Data path for %s exited without start", pvr.Name)
|
||||
} else {
|
||||
fsBackup.Cancel()
|
||||
}
|
||||
|
||||
@@ -284,8 +284,8 @@ func TestCancelPodVolumeRestore(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "no fs restore",
|
||||
expectedEventReason: datapath.EventReasonCancelled,
|
||||
expectedEventMsg: "Data path for PVR fake-pvr canceled",
|
||||
expectedEventReason: datapath.EventReasonStopped,
|
||||
expectedEventMsg: "Data path for fake-pvr exited without start",
|
||||
expectedErr: datapath.ErrCancelled,
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user