From dc50a4b980ee721cccc40331dbeb8a551da6eed1 Mon Sep 17 00:00:00 2001 From: Jian Qiu Date: Tue, 22 Nov 2022 12:23:38 +0800 Subject: [PATCH] fix: fail to delete guest due to guestdisk inconsistency (#15402) Co-authored-by: Qiu Jian --- pkg/compute/tasks/guest_delete_task.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/compute/tasks/guest_delete_task.go b/pkg/compute/tasks/guest_delete_task.go index 82eb7f9bc8..d9010026a5 100644 --- a/pkg/compute/tasks/guest_delete_task.go +++ b/pkg/compute/tasks/guest_delete_task.go @@ -157,7 +157,16 @@ func (self *GuestDeleteTask) OnDiskDetachComplete(ctx context.Context, obj db.IS log.Debugf("OnDiskDetachComplete") guest := obj.(*models.SGuest) - guestdisks, _ := guest.GetGuestDisks() + guestdisksOrigin, _ := guest.GetGuestDisks() + var guestdisks []models.SGuestdisk + // clean dirty data + for i := range guestdisksOrigin { + if guestdisksOrigin[i].GetDisk() == nil { + guestdisksOrigin[i].Detach(ctx, self.UserCred) + } else { + guestdisks = append(guestdisks, guestdisksOrigin[i]) + } + } if len(guestdisks) == 0 { // on guest disks detached self.doClearSecurityGroupComplete(ctx, guest)