Commit 3efa3bad by Dwight Engen Committed by Stéphane Graber

fix attach when cgroups mounted after container start

When booting an OL7 container on OL6, systemd in the OL7 container mounted some extra cgroup controllers, which are then present in /proc/self/cgroups of every task on the host. This is the list used by attach to determine which cgroups to move the attached task into, but when it asks the container over the command interface for the path to the subsystem this will fail since the controller didn't exist when the container was first started. Instead of failing, this change allows the attach to continue, warning that those cgroups that could not be found won't be attached to. The problem can be more simply reproduced by starting a busybox container, mounting a cgroup that was not previously mounted, and then attempting to attach to to the busybox container. The problem will likely not manifest with cgmanager since it only requests the path for the first controller, which is likely to always be mounted. Signed-off-by: 's avatarDwight Engen <dwight.engen@oracle.com> Acked-by: 's avatarSerge E. Hallyn <serge.hallyn@ubuntu.com>
parent 4eac9913
...@@ -1095,8 +1095,11 @@ static struct cgroup_process_info *lxc_cgroup_get_container_info(const char *nam ...@@ -1095,8 +1095,11 @@ static struct cgroup_process_info *lxc_cgroup_get_container_info(const char *nam
/* use the command interface to look for the cgroup */ /* use the command interface to look for the cgroup */
path = lxc_cmd_get_cgroup_path(name, lxcpath, h->subsystems[0]); path = lxc_cmd_get_cgroup_path(name, lxcpath, h->subsystems[0]);
if (!path) if (!path) {
goto out_error; h->used = false;
WARN("Not attaching to cgroup %s unknown to %s %s", h->subsystems[0], lxcpath, name);
continue;
}
entry = calloc(1, sizeof(struct cgroup_process_info)); entry = calloc(1, sizeof(struct cgroup_process_info));
if (!entry) if (!entry)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment