Bug 2109406 - [4.10]Cloned VM's snapshot restore fails if the source VM disk is deleted
Summary: [4.10]Cloned VM's snapshot restore fails if the source VM disk is deleted
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Container Native Virtualization (CNV)
Classification: Red Hat
Component: Storage
Version: 4.10.2
Hardware: All
OS: Linux
high
high
Target Milestone: ---
: 4.10.6
Assignee: skagan
QA Contact: dalia
URL:
Whiteboard:
Depends On: 2104479 2109407
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-07-21 07:21 UTC by Yan Du
Modified: 2023-09-18 04:42 UTC (History)
7 users (show)

Fixed In Version: v4.10.6-29
Doc Type: Known Issue
Doc Text:
Cause: When a VM Snapshot is taken the DataVolumeTemplate in the VirtualMachineSnapshotContent mistakenly refers to the wrong PVC. Consequence: In cases where the VM being restored was originally cloned from a source VM and the source VM has been deleted, the restore will fail. Workaround (if any): Edit the VirtualMachineSnapshotContent object so that the DataVolumeTemplate refers to the correct PVC. Result: The VirtualMachine can be restored successfully.
Clone Of: 2104479
Environment:
Last Closed: 2023-03-27 12:51:13 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github kubevirt containerized-data-importer pull 2405 0 None Merged [release-v1.43] Manual fix for clone without source pvc but target pvc already populated 2022-09-28 11:12:35 UTC
Github kubevirt containerized-data-importer pull 2412 0 None Merged [release-v1.43] Redo 2405 2022-09-28 11:12:39 UTC
Red Hat Issue Tracker CNV-19989 0 None None None 2023-01-10 13:16:49 UTC

Description Yan Du 2022-07-21 07:21:20 UTC
+++ This bug was initially created as a clone of Bug #2104479 +++

Description of problem:

[1] Created a new VM and is having below PVC:


rhel8-tory-koala                                                       Bound    pvc-6bafb6a3-e418-4860-91b2-f80af872a11f   30Gi          RWX            ocs-external-storagecluster-ceph-rbd   24s

[2] Created a clone from this VM:

rhel8-tory-koala-clone-rhel8-tory-koala-1m97p                          Bound    pvc-90e296b3-20ba-40d4-b0b7-5d9769ae2657   30Gi          RWX            ocs-external-storagecluster-ceph-rbd   4s

[3] Created a snapshot on the cloned VM:


NAME                                                                      READYTOUSE   SOURCEPVC                                       SOURCESNAPSHOTCONTENT   RESTORESIZE   SNAPSHOTCLASS                                     SNAPSHOTCONTENT                                    CREATIONTIME   AGE
vmsnapshot-70be6e17-b80d-46fb-a544-c52f6ee76a61-volume-rhel8-tory-koala   true         rhel8-tory-koala-clone-rhel8-tory-koala-1m97p                           30Gi          ocs-external-storagecluster-rbdplugin-snapclass   snapcontent-4ce6eab1-62b0-42f1-bd72-f4a0a2d63dae   19s            20s


[4] Deleted the VM and disk in [1].

[5] Tried to restore the snapshot. Restoration failed with the error below:

~~~
Error creating DataVolume restore-558e00db-857b-415d-8f37-bd7369194419-rhel8-tory-koala: admission webhook "datavolume-validate.cdi.kubevirt.io" denied the request: Source PVC default/rhel8-tory-koala not found
~~~

It is looking for PVC in [1] instead of PVC of the cloned VM.

Version-Release number of selected component (if applicable):

kubevirt-hyperconverged-operator.v4.10.2   

How reproducible:
100 %

Steps to Reproduce:

Please refer above.

Actual results:

Cloned VM's snapshot restore fails if the source VM disk is deleted.

Expected results:

Snapshot restore should work.

Additional info:

--- Additional comment from  on 2022-07-14 14:17:39 UTC ---

Hi @nashok I will really appreciate the yamls of the original VM, and of the cloned VM. Also an explanation of the process of the VM clone that was done in this case. Thanks

--- Additional comment from nijin ashok on 2022-07-18 12:58:59 UTC ---

Attaching the yamls of VMs.

The VM clone was done from the OpenShift console using "clone" option. 

Looks like the issue is because the VirtualMachineSnapshotContent of cloned VM refers to the source VM PVC instead of cloned PVC.

~~~
yq -y '.spec.source.virtualMachine.spec.dataVolumeTemplates' /tmp/vmsnapshot-content-53237ca8-7ca8-4894-ab85-0ba132a968e0.yaml
- metadata:
    creationTimestamp: null
    name: rhel8-resident-heron-clone-rhel8-resident-heron-2vald
  spec:
    source:
      pvc:
        name: rhel8-resident-heron <<<<
        namespace: nijin-cnv
    storage:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 30Gi
      storageClassName: ocs-external-storagecluster-ceph-rbd
      volumeMode: Block
~~~

The restore works if I manually edit this and changed it to cloned PVC.

--- Additional comment from nijin ashok on 2022-07-18 13:00:20 UTC ---

Comment 2 dalia 2022-10-19 13:47:43 UTC
verified on cnv 4.10.6

Comment 4 Adam Litke 2023-01-10 13:13:06 UTC
Hi Dalia.  Can we close this bug since it was verified and released already?

Comment 5 Red Hat Bugzilla 2023-09-18 04:42:29 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 120 days


Note You need to log in before you can comment on or make changes to this bug.