]> git.ipfire.org Git - thirdparty/libvirt.git/commit
lxc: don't try to hide parent cgroups inside container
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 22 Jan 2016 16:07:18 +0000 (16:07 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 7 Apr 2016 15:52:49 +0000 (16:52 +0100)
commitb4a32e5103dd98aac5b8fb68339ed0f93aed5116
tree8b0794de723b9319fc1cf4a41d622aa2d2c91902
parent586eeca17833e91d00ba303fbeec1316a49eda8c
lxc: don't try to hide parent cgroups inside container

On the host when we start a container, it will be
placed in a cgroup path of

   /machine.slice/machine-lxc\x2ddemo.scope

under /sys/fs/cgroup/*

Inside the containers' namespace we need to setup
/sys/fs/cgroup mounts, and currently will bind
mount /machine.slice/machine-lxc\x2ddemo.scope on
the host to appear as / in the container.

While this may sound nice, it confuses applications
dealing with cgroups, because /proc/$PID/cgroup
now does not match the directory in /sys/fs/cgroup

This particularly causes problems for systems and
will make it create repeated path components in
the cgroup for apps run in the container eg

  /machine.slice/machine-lxc\x2ddemo.scope/machine.slice/machine-lxc\x2ddemo.scope/user.slice/user-0.slice/session-61.scope

This also causes any systemd service that uses
sd-notify to fail to start, because when systemd
receives the notification it won't be able to
identify the corresponding unit it came from.
In particular this break rabbitmq-server startup

Future kernels will provide proper cgroup namespacing
which will handle this problem, but until that time
we should not try to play games with hiding parent
cgroups.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
(cherry picked from commit dc576025c360a1d2c89da410d0f3f0da55d0143f)
src/libvirt_private.syms
src/lxc/lxc_container.c
src/util/vircgroup.c
src/util/vircgroup.h