]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
ftests-066: avoid enabling controller on leaf cgroup node
authorKamalesh Babulal <kamalesh.babulal@oracle.com>
Wed, 12 Apr 2023 14:28:37 +0000 (14:28 +0000)
committerTom Hromatka <tom.hromatka@oracle.com>
Wed, 12 Apr 2023 17:07:41 +0000 (11:07 -0600)
cgroup v2, has no internal process constraint, where the process runs
only on the leaf node of the cgroup hierarchy and no controllers should
be enabled on the leaf cgroup node too. Let's not enable cpu controller
on the leaf cgroup node. Also, fix the expected stderr, accordingly
while migrating the tasks using cgclassify.

Signed-off-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
(cherry picked from commit 3ef8bf2a047e05a881a2cef6d38fbed3ea6502f2)

tests/ftests/066-sudo-systemd_cgclassify-v2.py

index d610cc1351d034a59a7c67744e100d5d5a0fc351..fee0812fcc04efd2980cabd22acd64c31984b463 100755 (executable)
@@ -66,15 +66,14 @@ def setup(config):
 
     # With cgroup v2, we can't enable controller for the child cgroup, while
     # a task is attached to test066.scope. Attach the task from test066.scope
-    # to child cgroup SYSTEMD_CGNAME and then enable cpu controller in the parent
-    # and then in the SYSTEMD_CGNAME cgroup, so that the cgroup.get() works
+    # to child cgroup SYSTEMD_CGNAME and then enable cpu controller in the parent,
+    # so that the cgroup.get() works
     Cgroup.set(config, cgname=SYSTEMD_CGNAME, setting='cgroup.procs', value=pid)
 
     Cgroup.set(
                 config, cgname=(os.path.join(SLICE, SCOPE)), setting='cgroup.subtree_control',
                 value='+cpu', ignore_systemd=True
               )
-    Cgroup.set(config, cgname=SYSTEMD_CGNAME, setting='cgroup.subtree_control', value='+cpu')
 
     # create and check if the cgroup was created under the controller root
     if not Cgroup.create_and_validate(config, CONTROLLER, OTHER_CGNAME, ignore_systemd=True):
@@ -133,7 +132,7 @@ def test(config):
     try:
         Cgroup.classify(config, CONTROLLER, SYSTEMD_CGNAME, OTHER_PIDS, ignore_systemd=True)
     except RunError as re:
-        err_str = 'Error changing group of pid {}: No such file or directory'.format(OTHER_PIDS[0])
+        err_str = 'Error changing group of pid {}: Cgroup does not exist'.format(OTHER_PIDS[0])
         if re.stderr != err_str:
             raise re
     else:
@@ -147,7 +146,7 @@ def test(config):
     try:
         Cgroup.classify(config, CONTROLLER, OTHER_CGNAME, SYSTEMD_PIDS[1])
     except RunError as re:
-        err_str = 'Error changing group of pid {}: No such file or directory'.format(
+        err_str = 'Error changing group of pid {}: Cgroup does not exist'.format(
                   SYSTEMD_PIDS[1])
         if re.stderr != err_str:
             raise re