[lxc-devel] [lxc/master] improve LXC_CMD_GET_CGROUP compatibility
Blub on Github
lxc-bot at linuxcontainers.org
Fri May 15 14:37:54 UTC 2020
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 696 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20200515/870af6e1/attachment.bin>
-------------- next part --------------
From 400d579e69f5f41a14d9fd0617f0e4972ae53dcf Mon Sep 17 00:00:00 2001
From: Wolfgang Bumiller <w.bumiller at proxmox.com>
Date: Fri, 15 May 2020 16:33:34 +0200
Subject: [PATCH] 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: Wolfgang Bumiller <w.bumiller at proxmox.com>
---
src/lxc/commands.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/lxc/commands.c b/src/lxc/commands.c
index 6309f68e02..25c409e3bc 100644
--- a/src/lxc/commands.c
+++ b/src/lxc/commands.c
@@ -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;
More information about the lxc-devel
mailing list