Bug 748354

Summary: [lxc]setmem will get wrong error message when cgroup is unmounted.
Product: Red Hat Enterprise Linux 6 Reporter: zhpeng
Component: libvirtAssignee: Osier Yang <jyang>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2CC: acathrow, ajia, cwei, dallan, dyuan, jyang, mshao, mzhan, rwu
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-0.9.9-1.el6 Doc Type: Bug Fix
Doc Text:
No documentation needed.
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-20 06:35:51 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description zhpeng 2011-10-24 08:56:00 UTC
Description of problem:
setmem will get wrong error message when cgroup is unmounted.

Version-Release number of selected component (if applicable):
libvirt-0.9.4-19.el6.x86_64
qemu-kvm-0.12.1.2-2.196.el6.x86_64
kernel-2.6.32-207.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1. make sure a running lxc application container and cgroup is mounted.
2. virsh -c lxc:/// aaa list
    Id Name                 State
   ----------------------------------
   6182 aaa                  running

   virsh -c lxc:/// aaa aaa
   Id:             6182
   Name:           aaa
   UUID:           c2031d50-8629-00a5-c895-f3b3c2f7b96a
   OS Type:        exe
   State:          running
   CPU(s):         1
   CPU time:       0.0s
   Max memory:     1048576 kB
   Used memory:    428 kB
   Persistent:     yes
   Autostart:      disable
   Managed save:   unknown
3. unmount cgroup
   # /etc/init.d/cgconfig stop
   # /etc/init.d/libvirtd restart
   # lscgroup
     cgroups can't be listed: Cgroup is not mounted
4. setmem of the lxc guest
   # virsh -c lxc:/// setmem aaa 512000
   error:this function is not supported by the connection driver: cgroups must be configured on the host

   # virsh -c lxc:/// dominfo aaa
   Id:             6182
   Name:           aaa
   UUID:           c2031d50-8629-00a5-c895-f3b3c2f7b96a
   OS Type:        exe
   State:          running
   CPU(s):         1
   Max memory:     1048576 kB
   Used memory:    1048576 kB
   Persistent:     yes
   Autostart:      disable
   Managed save:   unknown

in debug info:

Actual results:
Step4 error message is incorrect.

Expected results:
The error is not right, *_OPERATION_INVALID is proper error code, but
the more sensiable error from cgroup detection is overridden, we need
the error from cgroup detection but not this one.

Comment 1 Alex Jia 2011-10-24 09:04:33 UTC
Patch for upstream, but hasn't been backported to rhel6.2:

commit 6ac47762bb9c3851b07eaa871bfaf7ccd6017147
Author: Osier Yang <jyang>
Date:   Tue Aug 23 16:17:10 2011 +0800

    lxc: Cleanup improper VIR_ERR_NO_SUPPORT use
    
    s/VIR_ERR_NO_SUPPORT/VIR_ERR_OPERATION_INVALID/
    
    Special case is changes on lxcDomainInterfaceStats, if it's not
    implemented on the platform, prints error like:
    
        lxcError(VIR_ERR_OPERATION_INVALID, "%s",
                 _("interface stats not implemented on this platform"));
    
    As the function is supported by driver actually, error like
    VIR_ERR_NO_SUPPORT is confused.

Comment 2 Osier Yang 2011-12-12 07:48:49 UTC
This is already fixed in upstream, move to POST.

Comment 4 Alex Jia 2012-01-10 10:20:31 UTC
The bug has been fixed on libvirt-0.9.9-1.el6.x86_64:

# virsh -c lxc:/// setmem toy 400000
error: Requested operation is not valid: cgroups must be configured on the host

Comment 5 Osier Yang 2012-05-04 07:42:01 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
No documentation needed.

Comment 7 errata-xmlrpc 2012-06-20 06:35:51 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.

http://rhn.redhat.com/errata/RHSA-2012-0748.html