nspawn: move payload to sub-cgroup first, then sync cgroup trees
authorLennart Poettering <lennart@poettering.net>
Tue, 5 Mar 2019 17:57:53 +0000 (18:57 +0100)
committerThe Plumber <50238977+systemd-rhel-bot@users.noreply.github.com>
Tue, 19 May 2020 13:10:34 +0000 (15:10 +0200)
if we sync the legacy and unified trees before moving to the right
subcgroup then ultimately the cgroup paths in the hierarchies will be
out-of-sync... Hence, let's move the payload first, and sync then.

Addresses: https://github.com/systemd/systemd/pull/9762#issuecomment-441187979
(cherry picked from commit 27da7ef0d09e00eae821f3ef26e1a666fe7aa087)

Resolves: #1837094

src/nspawn/nspawn.c

index 08255b57243ff51a344a92ba6c94dbf20345cc29..8cb7591f0e71ab8ab2d1af6423bc6e33ce229319 100644 (file)
@@ -3960,11 +3960,11 @@ static int run(int master,
         } else if (arg_slice || arg_property)
                 log_notice("Machine and scope registration turned off, --slice= and --property= settings will have no effect.");
 
-        r = sync_cgroup(*pid, arg_unified_cgroup_hierarchy, arg_uid_shift);
+        r = create_subcgroup(*pid, arg_keep_unit, arg_unified_cgroup_hierarchy);
         if (r < 0)
                 return r;
 
-        r = create_subcgroup(*pid, arg_keep_unit, arg_unified_cgroup_hierarchy);
+        r = sync_cgroup(*pid, arg_unified_cgroup_hierarchy, arg_uid_shift);
         if (r < 0)
                 return r;