Description of problem:
vdsm fails to set vm niceness working with latest libvirt: libvirt-0.9.10-2.fc17.x86_64
I get the following trace:
Traceback (most recent call last):
File "/usr/share/vdsm/libvirtvm.py", line 1232, in _domDependentInit
self._dom.setSchedulerParameters({'cpu_shares': (20 - nice) * 51})
File "/usr/share/vdsm/libvirtvm.py", line 490, in f
ret = attr(*args, **kwargs)
File "/usr/share/vdsm/libvirtconnection.py", line 82, in wrapper
ret = f(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1788, in setSchedulerParameters
ret = libvirtmod.virDomainSetSchedulerParameters(self._o, params)
SystemError: /builddir/build/BUILD/Python-2.7.2/Objects/longobject.c:980: bad argument to internal function
I suspect libvirt changed something.
note that problem doesn't occur with libvirt-0.9.9-1.fc16.x86_64.
According to eblake, libvirt team did touch the python bindings, in an effort to clean up some undefined behavior and share more code between the various clients of the C code virTypedParameter and scheduler cpu shares is a client of virTypedParameter, so maybe we introduced a regression in our typed parameter handling
F17 will pick up 0.9.11, where this is fixed with:
commit 1aeb3d9e7f3a967f7d5e59f852e804aef0786f6c
Author: Guannan Ren <gren>
Date: Tue Mar 27 14:06:47 2012 +0800
python: make python APIs use these helper functions
*setPyVirTypedParameter
*libvirt_virDomainGetCPUStats