Unverified Commit 8bbfacd2 by Wolfgang Bumiller Committed by Christian Brauner

improve LXC_CMD_GET_CGROUP compatibility

When a newer lxc library communicates with an older one (such as running an lxc 4.0 lxc-freeze on a longer running container which was started while lxc was still at version 3), the LXC_CMD_GET_LIMITING_CGROUP command is not available, causing the remote to just close the socket. Catch this and try the previous command instead. Signed-off-by: 's avatarWolfgang Bumiller <w.bumiller@proxmox.com>
parent 3537c316
......@@ -509,8 +509,21 @@ static char *lxc_cmd_get_cgroup_path_do(const char *name, const char *lxcpath,
if (ret < 0)
return NULL;
if (ret == 0)
if (ret == 0) {
if (command == LXC_CMD_GET_LIMITING_CGROUP) {
/*
* This may indicate that the container was started
* under an ealier version before
* `cgroup_advanced_isolation` as implemented, there
* it sees an unknown command and just closes the
* socket, sending us an EOF.
*/
return lxc_cmd_get_cgroup_path_do(name, lxcpath,
subsystem,
LXC_CMD_GET_CGROUP);
}
return NULL;
}
if (cmd.rsp.ret < 0 || cmd.rsp.datalen < 0)
return NULL;
......
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