mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 02:14:37 +00:00
zdtm: cleanup zdtmtst and zdtmtst.defaultroot cgroups after finishing test
After running criu test, docker on the node becomes unusable, as it is confused by our leftover cgroups. Surely docker should be fixed to ignore custom cgroups (https://github.com/moby/moby/issues/37601), but we should not leave them after test also. v2: rmdir the holder only if it exists, remove racy wait and remove wrongly added cleanup method in class criu v3: bring back missed semicolon Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
This commit is contained in:
parent
07da7b0f42
commit
f194124e0a
2 changed files with 27 additions and 0 deletions
11
test/zdtm.py
11
test/zdtm.py
|
|
@ -569,6 +569,10 @@ class zdtm_test:
|
|||
subprocess.check_call(["make", "-C", "zdtm/"])
|
||||
subprocess.check_call(["flock", "zdtm_mount_cgroups.lock", "./zdtm_mount_cgroups"])
|
||||
|
||||
@staticmethod
|
||||
def cleanup():
|
||||
subprocess.check_call(["flock", "zdtm_mount_cgroups.lock", "./zdtm_umount_cgroups"])
|
||||
|
||||
|
||||
class inhfd_test:
|
||||
def __init__(self, name, desc, flavor, freezer):
|
||||
|
|
@ -674,6 +678,10 @@ class inhfd_test:
|
|||
def available():
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def cleanup():
|
||||
pass
|
||||
|
||||
|
||||
class groups_test(zdtm_test):
|
||||
def __init__(self, name, desc, flavor, freezer):
|
||||
|
|
@ -2200,3 +2208,6 @@ for tst in test_classes.values():
|
|||
tst.available()
|
||||
|
||||
opts['action'](opts)
|
||||
|
||||
for tst in test_classes.values():
|
||||
tst.cleanup()
|
||||
|
|
|
|||
16
test/zdtm_umount_cgroups
Executable file
16
test/zdtm_umount_cgroups
Executable file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Lets delete all test controllers after executing tests.
|
||||
|
||||
cat /proc/self/cgroup | grep -q zdtmtst.defaultroot || exit 0
|
||||
|
||||
tdir=`mktemp -d zdtm.XXXXXX`
|
||||
for i in "zdtmtst" "zdtmtst.defaultroot"; do
|
||||
mount -t cgroup -o none,name=$i zdtm $tdir || { rmdir $tdir; exit 1; }
|
||||
# remove a fake group if exists
|
||||
if [ -d "$tdir/holder" ]; then
|
||||
rmdir $tdir/holder || { umount -l $tdir && rmdir $tdir; exit 1; }
|
||||
fi
|
||||
umount -l $tdir || exit 1;
|
||||
done
|
||||
rmdir $tdir
|
||||
Loading…
Add table
Add a link
Reference in a new issue