[Pkg-libvirt-maintainers] Bug#931243: libvirt0: does not work under cgroup v2 (and rtkit)
Ryutaroh Matsumoto
ryutaroh.matsumoto at nagoya-u.jp
Sat Jun 29 05:40:15 BST 2019
Package: libvirt0
Version: 5.0.0-4
Severity: important
Tags: patch upstream
Dear Maintainer,
* libvirt0 tries to add "cpu" controller under the cgroup v2
(a.k.a. unified cgroup hierarchy), which can be enabled by
"systemd.unified_cgroup_hierarchy=1" boot option in /etc/default/grub
* The cpu controller cannot be enabled if there exists a process
with the realtime priority, as stated
WARNING: cgroup2 doesn't yet support control of realtime processes and
the cpu controller can only be enabled when all RT processes are in
the root cgroup. Be aware that system management software may already
have placed RT processes into nonroot cgroups during the system boot
process, and these processes may need to be moved to the root cgroup
before the cpu controller can be enabled.
at https://www.kernel.org/doc/Documentation/cgroup-v2.txt
* If a user installs "pulseaudio", which is true for almost all
desktop environments, then "rtkit" is also installed and
"pulseaudio" runs in the realtime priority.
Under the above situation, when a user runs "virsh" or "virt-manager"
or something like that, he/she gets the error message
Invalid value '+cpu' for 'cgroup.subtree_control': Invalid argument
and cannot use an application relying on libvirt0. It is also
reported at https://unix.stackexchange.com/questions/525498/libvirt-will-not-start-vms-with-error-invalid-value-cpu-for-cgroup-subtree
Temporary workaround 1: apt-get remove rtkit
Temporary workaround 2: Use the following patch
--- libvirt-5.0.0/src/util/vircgroup.c-orig 2019-06-29 12:57:39.959731576 +0900
+++ libvirt-5.0.0/src/util/vircgroup.c 2019-06-29 12:58:57.858871856 +0900
@@ -1268,6 +1268,7 @@
{
if (virLastErrorIsSystemErrno(ENXIO) ||
virLastErrorIsSystemErrno(EPERM) ||
+ virLastErrorIsSystemErrno(EINVAL) ||
virLastErrorIsSystemErrno(EACCES)) {
virResetLastError();
VIR_DEBUG("No cgroups present/configured/accessible, ignoring error");
A right solution:
An application should not try to enable the cpu controller in
cgroup v2, as instructed at https://github.com/systemd/systemd/blob/master/docs/CGROUP_DELEGATION.md
So a right solution is to stop touching "cgroup.subtree_control". It is also
discussed in the upstream as
https://github.com/libvirt/libvirt/commit/62dd4d25a2bc5ee33ed22728dc79a5da99906748
Best regards,
Ryutaroh Matsumoto
-- System Information:
Debian Release: 10.0
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 4.19.0-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8), LANGUAGE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages libvirt0 depends on:
ii libacl1 2.2.53-4
ii libapparmor1 2.13.2-10
ii libaudit1 1:2.8.4-3
pn libavahi-client3 <none>
ii libavahi-common3 0.7-4+b1
ii libc6 2.28-10
ii libcap-ng0 0.7.9-2
ii libcurl3-gnutls 7.64.0-4
ii libdbus-1-3 1.12.16-1
ii libdevmapper1.02.1 2:1.02.155-3
ii libgcc1 1:8.3.0-6
ii libgnutls30 3.6.7-4
ii libnl-3-200 3.4.0-1
ii libnl-route-3-200 3.4.0-1
ii libnuma1 2.0.12-1
ii libsasl2-2 2.1.27+dfsg-1
ii libselinux1 2.8-1+b1
ii libssh2-1 1.8.0-2.1
ii libxml2 2.9.4+dfsg1-7+b3
ii libyajl2 2.1.0-3
Versions of packages libvirt0 recommends:
ii lvm2 2.03.02-3
libvirt0 suggests no packages.
-- no debconf information
More information about the Pkg-libvirt-maintainers
mailing list