Bug 1101987

Summary: Libvirt should report error when try to revert guest to external system checkpoint snapshot
Product: Red Hat Enterprise Linux 7 Reporter: Shanzhi Yu <shyu>
Component: libvirtAssignee: Peter Krempa <pkrempa>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: dyuan, mzhan, pkrempa, rbalakri, yanyang
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-1.2.7-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 07:36:35 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: 1124854    

Description Shanzhi Yu 2014-05-28 09:59:16 UTC
Description of problem:

Libvirt should report error when try to revert guest to external system checkpoint snapshot(current it is unsupported reverting to external snapshot)

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

libvirt-1.1.1-29.el7.x86_64

How reproducible:

100%

Steps to Reproduce:

1. Prepare an running guest with health OS installed
#virsh list --state-running
Id    Name                           State
----------------------------------------------------
 3     rhel6.5                        running

# virsh domblklist rhel6.5
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/kvm-rhel6.5-x86_64-qcow2.img

2. Create external system check point snapshot
# virsh snapshot-create-as rhel6.5 s1 --memspec file=/tmp/s1.mem
Domain snapshot s1 created

# virsh domblklist rhel6.5
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/kvm-rhel6.5-x86_64-qcow2.s1

3. Revert guest to external system checkpoint snapshot
# virsh snapshot-revert rhel6.5 s1

# virsh domblklist rhel6.5
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/kvm-rhel6.5-x86_64-qcow2.s1



Actual results:


Expected results:

error: unsupported configuration: revert to external snapshot not supported yet


Additional info:

Comment 1 Peter Krempa 2014-05-28 10:54:24 UTC
Fixed upstream:

commit d410e6f19d944ad78bc9257726d613597db00701
Author: Peter Krempa <pkrempa>
Date:   Tue Mar 4 10:06:22 2014 +0100

    qemu: snapshot: Use better check when reverting external snapshots
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1071264
    
    Reverting of external snapshots is not supported currently. The check
    that is present doesn't properly check for all aspects that make a
    snapshot external. Use virDomainSnapshotIsExternal() to do the check.

Comment 3 Yang Yang 2014-09-26 08:52:46 UTC
Verified it on 
libvirt-1.2.8-3.el7.x86_64
qemu-kvm-rhev-2.1.0-5.el7.x86_64

Steps:
1. # virsh list --all
 Id    Name                           State
----------------------------------------------------
 3     qe-con                         running

# virsh snapshot-create-as qe-con s1 --memspec file=/tmp/s1
Domain snapshot s1 created

2. # virsh snapshot-dumpxml qe-con s1
<domainsnapshot>
  <name>s1</name>
  <state>running</state>
  <creationTime>1411721264</creationTime>
  <memory snapshot='external' file='/tmp/s1'/>
  <disks>
    <disk name='hda' snapshot='external' type='file'>
      <driver type='qcow2'/>
      <source file='/var/lib/libvirt/images/qe-con.s1'/>
    </disk>
  </disks>
....

3. # virsh snapshot-revert qe-con s1
error: unsupported configuration: revert to external snapshot not supported yet

4. # virsh snapshot-create-as qe-con s2 --memspec file=/tmp/s1 --diskspec hda,snapshot=no
Domain snapshot s2 created

[root@rhel7_test ~]# virsh snapshot-dumpxml qe-con s2
<domainsnapshot>
  <name>s2</name>
  <state>running</state>
  <parent>
    <name>s1</name>
  </parent>
  <creationTime>1411721448</creationTime>
  <memory snapshot='external' file='/tmp/s1'/>
  <disks>
    <disk name='hda' snapshot='no'/>
  </disks>
.....

5. # virsh snapshot-revert qe-con s2
error: unsupported configuration: revert to external snapshot not supported yet

Since the results are expected, set it to verified

Comment 5 errata-xmlrpc 2015-03-05 07:36:35 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, 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://rhn.redhat.com/errata/RHSA-2015-0323.html