Red Hat Bugzilla – Bug 869100
poor error message for virsh snapshot-list --roots --current
Last modified: 2013-02-21 02:10:53 EST
Description of problem: If I create a snapshot with --no-metadata, then snapshot-list will not list this snapshot with --no-metadata And with --roots --current, snapshot-list can not list expect result but error error: --roots and --from are mutually exclusive Version-Release number of selected component (if applicable): libvirt-0.10.2-4.el6.x86_64 qemu-kvm-rhev-0.12.1.2-2.329.el6.x86_64 kernel-2.6.32-329.el6.x86_64 How reproducible: 100% Steps to Reproduce: 1. Prepare a guest with qcow2 disk 2. Create snapshot with --no-metadata # virsh snapshot-create guest --nometadata Domain snapshot 1350900552 created 3. List snapshots # virsh snapshot-list guest --no-metadata Name Creation Time State ------------------------------------------------------------ 4. # virsh snapshot-list guest --roots --current error: --roots and --from are mutually exclusive Actual results: 1. Can not list no metadata snapshot with --no-metadata 2. list with --roots --current report error Expected results: 1. Can list no metadata snapshot with --no-metadata 2. list with --roots --current works well Additional info:
(In reply to comment #0) > Description of problem: > If I create a snapshot with --no-metadata, then snapshot-list will not list > this snapshot with --no-metadata > And with --roots --current, snapshot-list can not list expect result but > error > error: --roots and --from are mutually exclusive > > > Version-Release number of selected component (if applicable): > libvirt-0.10.2-4.el6.x86_64 > qemu-kvm-rhev-0.12.1.2-2.329.el6.x86_64 > kernel-2.6.32-329.el6.x86_64 > > How reproducible: > 100% > > Steps to Reproduce: > 1. Prepare a guest with qcow2 disk > 2. Create snapshot with --no-metadata > # virsh snapshot-create guest --nometadata > Domain snapshot 1350900552 created > This creates a snapshot, _and then immediately deletes the metadata_. That is, it is useful for creating snapshot files _without tracking an actual snapshot_. > 3. List snapshots > # virsh snapshot-list guest --no-metadata > Name Creation Time State > ------------------------------------------------------------ This is expected. > > 4. # virsh snapshot-list guest --roots --current > error: --roots and --from are mutually exclusive This is expected. > > Actual results: > 1. Can not list no metadata snapshot with --no-metadata There is no way to list qemu snapshots that lack metadata, yet. Upstream will eventually add a way to list internal snapshots that do not have libvirt data, but where qemu can use 'loadvm' to revert to that snapshot; but you cannot create this situation from libvirt alone, and it is not yet an upstream feature. > 2. list with --roots --current report error That is correct, because once you limit a tree (such as by using --current), then using --roots no longer makes sense (--roots only works when used on the global list of snapshots for a domain). Hence, I'm closing this as NOTABUG.
(In reply to comment #1) > (In reply to comment #0) > > Description of problem: > > If I create a snapshot with --no-metadata, then snapshot-list will not list > > this snapshot with --no-metadata > > And with --roots --current, snapshot-list can not list expect result but > > error > > error: --roots and --from are mutually exclusive > > > > > > Version-Release number of selected component (if applicable): > > libvirt-0.10.2-4.el6.x86_64 > > qemu-kvm-rhev-0.12.1.2-2.329.el6.x86_64 > > kernel-2.6.32-329.el6.x86_64 > > > > How reproducible: > > 100% > > > > Steps to Reproduce: > > 1. Prepare a guest with qcow2 disk > > 2. Create snapshot with --no-metadata > > # virsh snapshot-create guest --nometadata > > Domain snapshot 1350900552 created > > > > This creates a snapshot, _and then immediately deletes the metadata_. That > is, it is useful for creating snapshot files _without tracking an actual > snapshot_. > > > 3. List snapshots > > # virsh snapshot-list guest --no-metadata > > Name Creation Time State > > ------------------------------------------------------------ > > This is expected. > > > > > 4. # virsh snapshot-list guest --roots --current > > error: --roots and --from are mutually exclusive > > This is expected. > Can it means that the root of current children? Because I can get the result with perl-Sys-Virt $snapshot->list_all_children(Sys::Virt::DomainSnapshot::LIST_ROOTS); else , it also should report "--roots and --current are mutually exclusive" > > > > Actual results: > > 1. Can not list no metadata snapshot with --no-metadata > > There is no way to list qemu snapshots that lack metadata, yet. Upstream > will eventually add a way to list internal snapshots that do not have > libvirt data, but where qemu can use 'loadvm' to revert to that snapshot; > but you cannot create this situation from libvirt alone, and it is not yet > an upstream feature. > > > 2. list with --roots --current report error > > That is correct, because once you limit a tree (such as by using --current), > then using --roots no longer makes sense (--roots only works when used on > the global list of snapshots for a domain). > > Hence, I'm closing this as NOTABUG.
(In reply to comment #2) > > > 4. # virsh snapshot-list guest --roots --current > > > error: --roots and --from are mutually exclusive > > > > This is expected. > > > > Can it means that the root of current children? Because I can get the result > with perl-Sys-Virt > $snapshot->list_all_children(Sys::Virt::DomainSnapshot::LIST_ROOTS); This is a bug in your script. The value of Sys::Virt::DomainSnapshot::LIST_ROOTS and Sys::Virt::DomainSnapshot::LIST_DESCENDANTS are identical; LIST_ROOTS is for listing snapshots of a domain, while LIST_DESCENDANTS is for listing children of a snapshot. You are passing the wrong name but the right value for the LIST_DESCENDANTS behavior. > > else , it also should report "--roots and --current are mutually exclusive" --roots says to filter to snapshots with no parents. But the moment you limit the tree to a subset, as in using --current, then everything in that subset has a parent, and thus none of them are roots. Hence, --roots and --current are mutually exclusive. However, there is an upstream thread about poor error message quality: https://www.redhat.com/archives/libvir-list/2012-October/msg01183.html So I will reopen and retitle this bug, as a request to backport the improved error message.
Here's another attempt upstream at improving the situation: https://www.redhat.com/archives/libvir-list/2012-October/msg01526.html
In POST: http://post-office.corp.redhat.com/archives/rhvirt-patches/2012-October/msg01185.html
Verify this bug with: libvirt-0.10.2-6.el6.x86_64 # virsh snapshot-create-as q1 ds1 --disk-only Domain snapshot ds1 created # virsh snapshot-create-as q1 ds2 --disk-only Domain snapshot ds2 created # virsh snapshot-list q1 --roots --current error: --roots and --current are mutually exclusive
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. http://rhn.redhat.com/errata/RHSA-2013-0276.html