• D
    lxc: don't try to hide parent cgroups inside container · dc576025
    Daniel P. Berrange 提交于
    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: NDaniel P. Berrange <berrange@redhat.com>
    dc576025
lxc_container.c 71.5 KB