Bug 1009008

Summary: virsh resume command should raise error for running VM
Product: [Community] Virtualization Tools Reporter: liumbj
Component: libvirtAssignee: Libvirt Maintainers <libvirt-maint>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: berrange, clalancette, crobinso, itamar, jforbes, laine, libvirt-maint, mkletzan, rbalakri, slawek, veillard, virt-maint, ztehypervisor
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: LibvirtFirstBug
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-10-26 17:47:08 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:

Description liumbj 2013-09-17 13:28:49 UTC
Description of problem:
virsh resume command should raise error for running VM. It seems due to the bug of libvirt.

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


How reproducible:


Steps to Reproduce:
1.[root@host ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 7     vm1                            running

2.root@host ~]# virsh resume vm1
Domain vm1 resumed

3.[root@host ~]# echo $?
0

Actual results:
Resume operation doesn't fail.

Expected results:
Error should be raised.

Additional info:

Comment 1 Cole Robinson 2013-10-04 20:51:10 UTC
Not particularly important for Fedora, so moving to the upstream tracker.

Comment 2 Cole Robinson 2016-04-20 16:21:32 UTC
Both the qemu and lxc driver are affected. If the VM is not 'resume'able, the drivers should raise an explicit error, like:

        virReportError(VIR_ERR_OPERATION_INVALID,
                       "%s", _("domain is not in a resumable state"));
        goto endjob;

For qemu, see src/qemu/qemu_driver.c function qemuDomainResume
For lxc, see src/lxc/lxc_driver.c function lxcDomainResume

Comment 3 Michael Liu 2016-04-27 10:48:01 UTC
please post the version of libvirt? what state is the vm after the operation?

Comment 4 Cole Robinson 2016-04-27 16:41:58 UTC
Relevant with libvirt.git, so libvirt 1.3.3 at least. The VM state doesn't change, the API just doesn't report any error when it doesn't perform any operation.

Comment 5 Sławek Kapłoński 2016-10-20 20:58:23 UTC
I will try to push patch to fix it in next few days.

Comment 6 Martin Kletzander 2016-10-26 17:47:08 UTC
Fixed with commit v2.3.0-134-g62535195bb52

commit 3e044e6e4918905a6b16b3284007856f6b68cf7b
Author: Sławek Kapłoński <slawek>
Date:   Sat Oct 22 12:30:01 2016 +0200

    qemu, lxc: Raise error message when resuming running domain