Bug 2170826

Summary: [snapshot] unclear error message when deleting an external memory snapshot
Product: Red Hat Enterprise Linux 9 Reporter: yisun
Component: libvirtAssignee: Pavel Hrdina <phrdina>
libvirt sub component: General QA Contact: yisun
Status: CLOSED ERRATA Docs Contact:
Severity: low    
Priority: low CC: dzheng, jdenemar, lmen, virt-maint, ymankad
Version: 9.2Keywords: Triaged
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-9.0.0-7.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-05-09 07:27:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1519002    

Description yisun 2023-02-17 10:32:06 UTC
Description of problem:
unclear error message when deleting an external memory snapshot 

Version-Release number of selected component (if applicable):
libvirt-9.0.0-3.el9.x86_64

How reproducible:
100%

Steps to Reproduce:
1. prepare a running vm

2. prepare a snapshot xml to do memory-only snapshot
[root@dell-per740-41 ~]# cat snap.xml
<domainsnapshot>
<description>Snapshot test</description>
<name>snap1</name>
<memory snapshot='external' file='/tmp/mem.dump'/>
<disks>
<disk name='vda' snapshot='no'/>
</disks>
</domainsnapshot>

3. create the snapshot
[root@dell-per740-41 ~]# virsh snapshot-create avocado-vt-vm1 snap.xml
Domain snapshot snap1 created from 'snap.xml'

4. delete the snapshot
[root@dell-per740-41 ~]# virsh snapshot-delete avocado-vt-vm1 snap1
error: Failed to delete snapshot snap1
error: An error occurred, but the cause is unknown

[root@dell-per740-41 ~]# virsh snapshot-list avocado-vt-vm1
Name Creation Time State
----------------------------------------------
snap1 2023-02-14 21:55:13 -0500 running


Actual results:
as above, the error message changed to an unclear one. Previously we'll have some error like 'to delete external snapshot is not supported'. But since it's supported to delete external disk snapshot, the error message seems to be removed and an unclear message generated here.  

Expected results:
A clear error should be provided.

Additional info:
delete with metadata still works
[root@dell-per740-41 ~]# virsh snapshot-delete avocado-vt-vm1 snap1 --metadata
Domain snapshot snap1 deleted

Comment 1 Pavel Hrdina 2023-02-22 10:11:01 UTC
Fixed in upstream:

commit e3957c22462bc52c37c94ca4d6fe3d26f8202119
Author: Pavel Hrdina <phrdina>
Date:   Tue Feb 21 16:52:28 2023 +0100

    qemu_snapshot: refactor qemuSnapshotDeleteExternalPrepare

commit 356e227208ec66fff178b91ed4b1197c7e6cf974
Author: Pavel Hrdina <phrdina>
Date:   Tue Feb 21 16:10:56 2023 +0100

    qemu_snapshot: remove memory snapshot when deleting external snapshot

Comment 4 yisun 2023-02-23 02:54:07 UTC
[root@dell-per740-41 ~]# rpm -qa | grep libvirt-9
libvirt-9.0.0-7.el9.x86_64

[root@dell-per740-41 ~]# cat snap.xml 
<domainsnapshot>
	<description>Snapshot test</description>
	<name>snap1</name>
	<memory snapshot='external' file='/tmp/mem.dump'/>
	<disks>
		<disk name='vda' snapshot='no'/>
	</disks>
</domainsnapshot>

[root@dell-per740-41 ~]# virsh domblklist vm1
 Target   Source
---------------------------------------------
 vda      /var/lib/libvirt/images/vm1.qcow2

[root@dell-per740-41 ~]# virsh snapshot-create vm1 snap.xml 
Domain snapshot snap1 created from 'snap.xml'

[root@dell-per740-41 ~]# virsh snapshot-list vm1
 Name    Creation Time               State
----------------------------------------------
 snap1   2023-02-22 21:51:10 -0500   running

[root@dell-per740-41 ~]# ll /tmp/mem.dump 
-rw-------. 1 root root 6265787 Feb 22 21:51 /tmp/mem.dump
[root@dell-per740-41 ~]# virsh snapshot-delete vm1 snap1
Domain snapshot snap1 deleted

[root@dell-per740-41 ~]# virsh snapshot-list vm1
 Name   Creation Time   State
-------------------------------

[root@dell-per740-41 ~]# ll /tmp/mem.dump 
ls: cannot access '/tmp/mem.dump': No such file or directory

As above, mem snapshot file deleted, and snapshot metadata deleted. So now the memeory only snapshot can be removed, result is PASS

Comment 9 errata-xmlrpc 2023-05-09 07:27:45 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (libvirt bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:2171