package/lxc: cgroups: initialize cpuset properly
authorRomain Naour <romain.naour@smile.fr>
Sun, 1 Mar 2020 21:06:09 +0000 (22:06 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Mon, 2 Mar 2020 22:00:22 +0000 (23:00 +0100)
The tests.package.test_lxc.TestLxc failure on gitlab
is similar to the issue reported by [1] and fixed by [2].

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/454255988

[1] https://github.com/NixOS/nixpkgs/issues/75467#issuecomment-569386159
[2] https://github.com/lxc/lxc/pull/3109

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Cc: Jérôme Pouiller <jezz@sysmic.org>
Cc: Patrick Havelange <patrick.havelange@essensium.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/lxc/0004-cgroups-initialize-cpuset-properly.patch [new file with mode: 0644]

diff --git a/package/lxc/0004-cgroups-initialize-cpuset-properly.patch b/package/lxc/0004-cgroups-initialize-cpuset-properly.patch
new file mode 100644 (file)
index 0000000..86aa708
--- /dev/null
@@ -0,0 +1,38 @@
+From 6a8a510211515824ff20699d45f6d07a84f3c02e Mon Sep 17 00:00:00 2001
+From: Christian Brauner <christian.brauner@ubuntu.com>
+Date: Sun, 28 Jul 2019 23:13:26 +0200
+Subject: [PATCH] cgroups: initialize cpuset properly
+
+Closes #3108.
+Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
+(cherry picked from commit b31d62b847a3ee013613795094cce4acc12345ef)
+Signed-off-by: Romain Naour <romain.naour@smile.fr>
+---
+ src/lxc/cgroups/cgfsng.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c
+index 87e12d2dd..7e691d7cc 100644
+--- a/src/lxc/cgroups/cgfsng.c
++++ b/src/lxc/cgroups/cgfsng.c
+@@ -496,12 +496,12 @@ static bool cg_legacy_filter_and_set_cpus(char *path, bool am_initialized)
+       }
+       if (!flipped_bit) {
+-              DEBUG("No isolated or offline cpus present in cpuset");
+-              return true;
++              cpulist = lxc_cpumask_to_cpulist(possmask, maxposs);
++              TRACE("No isolated or offline cpus present in cpuset");
++      } else {
++              cpulist = move_ptr(posscpus);
++              TRACE("Removed isolated or offline cpus from cpuset");
+       }
+-      DEBUG("Removed isolated or offline cpus from cpuset");
+-
+-      cpulist = lxc_cpumask_to_cpulist(possmask, maxposs);
+       if (!cpulist) {
+               ERROR("Failed to create cpu list");
+               return false;
+-- 
+2.24.1
+