From 8410846c0b986e2e506a6457a58ef12fbe7c3485 Mon Sep 17 00:00:00 2001 From: Xiangyu Chen Date: Tue, 26 Mar 2024 17:42:58 +0800 Subject: lxc: fix broken test cases Upstream dropped cgroup handling in lxc-test-usernic lxc-test-unpriv and lxc-test-apparmor-mount to fix the broken cases. Signed-off-by: Xiangyu Chen Signed-off-by: Bruce Ashfield --- ...001-lxc-test-usernic-drop-cgroup-handling.patch | 61 ++++++++++++ ...e-old-and-broken-cgroup-handling-code-fro.patch | 103 +++++++++++++++++++++ recipes-containers/lxc/lxc_git.bb | 2 + 3 files changed, 166 insertions(+) create mode 100644 recipes-containers/lxc/files/0001-lxc-test-usernic-drop-cgroup-handling.patch create mode 100644 recipes-containers/lxc/files/0001-tests-remove-old-and-broken-cgroup-handling-code-fro.patch diff --git a/recipes-containers/lxc/files/0001-lxc-test-usernic-drop-cgroup-handling.patch b/recipes-containers/lxc/files/0001-lxc-test-usernic-drop-cgroup-handling.patch new file mode 100644 index 00000000..162e8f9d --- /dev/null +++ b/recipes-containers/lxc/files/0001-lxc-test-usernic-drop-cgroup-handling.patch @@ -0,0 +1,61 @@ +From ec85e5ca4953292c4341497704ce738669a79b64 Mon Sep 17 00:00:00 2001 +From: Serge Hallyn +Date: Fri, 2 Feb 2024 10:41:11 -0600 +Subject: [PATCH] lxc-test-usernic: drop cgroup handling + +This stuff is not needed in a modern systemd based system, and in fact +breaks. It would probably be better to detect such a system so that a +non-systemd box can still run this test. But I'm not sure what would be +reliable. + +Upstream-Status: Backport from +[https://github.com/lxc/lxc/commit/ec85e5ca4953292c4341497704ce738669a79b64] + +Signed-off-by: Serge Hallyn +Signed-off-by: Xiangyu Chen +--- + src/tests/lxc-test-usernic.in | 28 ---------------------------- + 1 file changed, 28 deletions(-) + +diff --git a/src/tests/lxc-test-usernic.in b/src/tests/lxc-test-usernic.in +index 9af8678f3..49fd5e3f7 100755 +--- a/src/tests/lxc-test-usernic.in ++++ b/src/tests/lxc-test-usernic.in +@@ -80,34 +80,6 @@ lxc.idmap = u 0 910000 10000 + lxc.idmap = g 0 910000 10000 + EOF + +-if command -v cgm >/dev/null 2>&1; then +- cgm create all usernic-user +- cgm chown all usernic-user $(id -u usernic-user) $(id -g usernic-user) +- cgm movepid all usernic-user $$ +-elif [ -e /sys/fs/cgroup/cgmanager/sock ]; then +- for d in $(cut -d : -f 2 /proc/self/cgroup); do +- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \ +- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Create \ +- string:$d string:usernic-user >/dev/null +- +- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \ +- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Chown \ +- string:$d string:usernic-user int32:$(id -u usernic-user) int32:$(id -g usernic-user) >/dev/null +- +- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \ +- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.MovePid \ +- string:$d string:usernic-user int32:$$ >/dev/null +- done +-else +- for d in /sys/fs/cgroup/*; do +- [ "$d" = "/sys/fs/cgroup/unified" ] && continue +- [ -f $d/cgroup.clone_children ] && echo 1 > $d/cgroup.clone_children +- [ ! -d $d/lxctest ] && mkdir $d/lxctest +- chown -R usernic-user: $d/lxctest +- echo $$ > $d/lxctest/tasks +- done +-fi +- + mkdir -p /run/user/$(id -u usernic-user) + chown -R usernic-user: /run/user/$(id -u usernic-user) /home/usernic-user + +-- +2.35.5 + diff --git a/recipes-containers/lxc/files/0001-tests-remove-old-and-broken-cgroup-handling-code-fro.patch b/recipes-containers/lxc/files/0001-tests-remove-old-and-broken-cgroup-handling-code-fro.patch new file mode 100644 index 00000000..bf8df795 --- /dev/null +++ b/recipes-containers/lxc/files/0001-tests-remove-old-and-broken-cgroup-handling-code-fro.patch @@ -0,0 +1,103 @@ +From 8f9733d756361ff8f8d8d589f286c0e064b1195d Mon Sep 17 00:00:00 2001 +From: Alexander Mikhalitsyn +Date: Thu, 15 Feb 2024 18:13:05 +0100 +Subject: [PATCH] tests: remove old and broken cgroup handling code from tests + +We have removed the same piece of code in +ec85e5ca495 ("lxc-test-usernic: drop cgroup handling") +let's do the same for two other tests. + +This fixes autopkgtests. + +Upstream-Status: Backport from +[https://github.com/lxc/lxc/commit/8f9733d756361ff8f8d8d589f286c0e064b1195d] + +Signed-off-by: Alexander Mikhalitsyn +Signed-off-by: Xiangyu Chen +--- + src/tests/lxc-test-apparmor-mount | 29 ----------------------------- + src/tests/lxc-test-unpriv | 28 ---------------------------- + 2 files changed, 57 deletions(-) + +diff --git a/src/tests/lxc-test-apparmor-mount b/src/tests/lxc-test-apparmor-mount +index 7c9d9ad50..ddf783d4b 100755 +--- a/src/tests/lxc-test-apparmor-mount ++++ b/src/tests/lxc-test-apparmor-mount +@@ -119,35 +119,6 @@ chown -R $TUSER: /run/user/$(id -u $TUSER) + + cd $HDIR + +-if command -v cgm >/dev/null 2>&1; then +- cgm create all $TUSER +- cgm chown all $TUSER $(id -u $TUSER) $(id -g $TUSER) +- cgm movepid all $TUSER $$ +-elif [ -e /sys/fs/cgroup/cgmanager/sock ]; then +- for d in $(cut -d : -f 2 /proc/self/cgroup); do +- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \ +- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Create \ +- string:$d string:$TUSER >/dev/null +- +- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \ +- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Chown \ +- string:$d string:$TUSER int32:$(id -u $TUSER) int32:$(id -g $TUSER) >/dev/null +- +- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \ +- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.MovePid \ +- string:$d string:$TUSER int32:$$ >/dev/null +- done +-else +- for d in /sys/fs/cgroup/*; do +- [ "$d" = "/sys/fs/cgroup/unified" ] && continue +- [ -f $d/cgroup.clone_children ] && echo 1 > $d/cgroup.clone_children +- [ ! -d $d/lxctest ] && mkdir $d/lxctest +- chown -R $TUSER: $d/lxctest +- echo $$ > $d/lxctest/tasks +- done +-fi +- +- + run_cmd lxc-create -t busybox -n $cname + + echo "test default confined container" +diff --git a/src/tests/lxc-test-unpriv b/src/tests/lxc-test-unpriv +index 8fb9106d6..426add9da 100755 +--- a/src/tests/lxc-test-unpriv ++++ b/src/tests/lxc-test-unpriv +@@ -130,34 +130,6 @@ chown -R $TUSER: /run/user/$(id -u $TUSER) + + cd $HDIR + +-if command -v cgm >/dev/null 2>&1; then +- cgm create all $TUSER +- cgm chown all $TUSER $(id -u $TUSER) $(id -g $TUSER) +- cgm movepid all $TUSER $$ +-elif [ -e /sys/fs/cgroup/cgmanager/sock ]; then +- for d in $(cut -d : -f 2 /proc/self/cgroup); do +- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \ +- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Create \ +- string:$d string:$TUSER >/dev/null +- +- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \ +- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Chown \ +- string:$d string:$TUSER int32:$(id -u $TUSER) int32:$(id -g $TUSER) >/dev/null +- +- dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \ +- --type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.MovePid \ +- string:$d string:$TUSER int32:$$ >/dev/null +- done +-else +- for d in /sys/fs/cgroup/*; do +- [ "$d" = "/sys/fs/cgroup/unified" ] && continue +- [ -f $d/cgroup.clone_children ] && echo 1 > $d/cgroup.clone_children +- [ ! -d $d/lxctest ] && mkdir $d/lxctest +- chown -R $TUSER: $d/lxctest +- echo $$ > $d/lxctest/tasks +- done +-fi +- + run_cmd lxc-create -t busybox -n c1 -l trace -o "${UNPRIV_LOG}" + + # Make sure we can start it - twice +-- +2.35.5 + diff --git a/recipes-containers/lxc/lxc_git.bb b/recipes-containers/lxc/lxc_git.bb index 33ea4ee7..ee0e442f 100644 --- a/recipes-containers/lxc/lxc_git.bb +++ b/recipes-containers/lxc/lxc_git.bb @@ -47,6 +47,8 @@ SRC_URI = "git://github.com/lxc/lxc.git;branch=stable-5.0;protocol=https \ file://0001-template-if-busybox-contains-init-use-it-in-containe.patch \ file://dnsmasq.conf \ file://lxc-net \ + file://0001-lxc-test-usernic-drop-cgroup-handling.patch \ + file://0001-tests-remove-old-and-broken-cgroup-handling-code-fro.patch \ " SRCREV = "cb8e38aca27a23964941f0f011a8919aab8bebab" -- cgit v1.2.3-54-g00ecf