Bug 1089179

Summary: The error is inaccurate when create snapshot with memspec snapshot=external and diskspec snapshot=no
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, jtomko, mzhan, 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:34:34 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:
Attachments:
Description Flags
libvirtd log none

Description Shanzhi Yu 2014-04-18 08:12:05 UTC
Description of problem:

The error is inaccurate when create snapshot with memspec snapshot=external and diskspec snapshot=no

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

libvirt-1.1.1-29.el7.x86_64
qemu-kvm-rhev-1.5.3-45.el7.x86_64

How reproducible:

100%

Steps to Reproduce:

1.prepare an guest with an heath guest os installed. keep it running status
# virsh list --all
 Id    Name                           State
----------------------------------------------------
 35    rhel6                          running

2.do snapshot with memspec snapshot=external diskspec snapshot=no

# virsh snapshot-create-as rhel6 --memspec snapshot=external,file=/tmp/sss --diskspec sda,snapshot=no --diskspec vdb,snapshot=no

error: An error occurred, but the cause is unknown

3.

Actual results:


Expected results:

libvirt should can do such type snapshot, or give an accurate error info

Additional info:

Comment 1 Shanzhi Yu 2014-04-18 08:15:28 UTC
This also occur on rhel6 with libvirt-0.10.2-33.el6.x86_64

Comment 2 Shanzhi Yu 2014-04-18 08:18:32 UTC
Created attachment 887458 [details]
libvirtd log

Comment 3 Ján Tomko 2014-05-29 12:51:56 UTC
Fixed upstream:
commit cb6681ff1de3d02e8d88ce3b391ba03f8dd612f4
Author:     Peter Krempa <pkrempa>
AuthorDate: 2014-05-20 15:22:14 +0200
Commit:     Peter Krempa <pkrempa>
CommitDate: 2014-05-20 19:28:10 +0200

    qemu: snapshot: Fix return value of external checkpoint with no disks
    
    When doing an external checkpoint of a VM with no disk selected we'd
    return failure but not set error code. This was a result of ret not
    being set to 0 during walking of the disk array.
    
    Rework early failure checking and set the error code to success before
    iterating the array of disks so that we return success if no disks are
    snapshotted.
    
    Fixes the following symptom (or without --diskspec for diskless VMs)
    
     $ virsh snapshot-create-as snapshot-test  --memspec /tmp/asdf --diskspec hda,snapshot=no
     error: An error occurred, but the cause is unknown

git describe: v1.2.4-107-gcb6681f contains: v1.2.5-rc1~22

Comment 5 Yang Yang 2014-09-26 07:20:27 UTC
Verified it on
qemu-kvm-rhev-2.1.0-5.el7.x86_64
libvirt-1.2.8-3.el7.x86_64

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

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

# virsh snapshot-dumpxml qe-con 1411715584
<domainsnapshot>
  <name>1411715584</name>
  <state>running</state>
  <parent>
    <name>1411715488</name>
  </parent>
  <creationTime>1411715584</creationTime>
  <memory snapshot='external' file='/tmp/s1'/>
  <disks>
    <disk name='hda' snapshot='no'/>
  </disks>
.......

3. # virsh snapshot-create-as qe-con --memspec snapshot=external,file=/tmp/s2
Domain snapshot 1411715645 created

# virsh snapshot-dumpxml qe-con 1411715645
<domainsnapshot>
  <name>1411715645</name>
  <state>running</state>
  <parent>
    <name>1411715584</name>
  </parent>
  <creationTime>1411715645</creationTime>
  <memory snapshot='external' file='/tmp/s2'/>
  <disks>
    <disk name='hda' snapshot='external' type='file'>
      <driver type='qcow2'/>
      <source file='/tmp/disk.1411715645'/>
    </disk>
  </disks>

Since the results are expected, set it to verified

Comment 7 errata-xmlrpc 2015-03-05 07:34:34 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