From: Quentin Deslandes Date: Tue, 4 Nov 2025 13:45:15 +0000 (+0100) Subject: core: use proper service type of TEST-07-PID.user-namespace-path.sh X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=697179886460e22ce9c367bc559e9c95773a8808;p=thirdparty%2Fsystemd.git core: use proper service type of TEST-07-PID.user-namespace-path.sh TEST-07-PID.user-namespace-path.sh is flaky as Type=simple is used (implicitly), explicitly use Type=exec instead to ensure the namespaces are created before starting another service reusing the same namespaces. Fixes #39546. --- diff --git a/test/units/TEST-07-PID1.user-namespace-path.sh b/test/units/TEST-07-PID1.user-namespace-path.sh index ebc8f00baf9..437968e8c25 100755 --- a/test/units/TEST-07-PID1.user-namespace-path.sh +++ b/test/units/TEST-07-PID1.user-namespace-path.sh @@ -16,12 +16,10 @@ if [ -f /usr/lib/systemd/systemd-asan-env ]; then fi # Only reuse the user namespace -systemd-run --unit=oldservice --property=PrivateUsers=true sleep 3600 -sleep .2 +systemd-run --unit=oldservice --property=Type=exec --property=PrivateUsers=true sleep 3600 OLD_PID=$(systemctl show oldservice -p MainPID | awk -F= '{print $2}') -systemd-run --unit=newservice --property=UserNamespacePath=/proc/"$OLD_PID"/ns/user --property=PrivateNetwork=true sleep 3600 -sleep .2 +systemd-run --unit=newservice --property=Type=exec --property=UserNamespacePath=/proc/"$OLD_PID"/ns/user --property=PrivateNetwork=true sleep 3600 NEW_PID=$(systemctl show newservice -p MainPID | awk -F= '{print $2}') assert_neq "$(lsns -p "$OLD_PID" -o NS -t net -n)" "$(lsns -p "$NEW_PID" -o NS -t net -n)" @@ -30,12 +28,10 @@ assert_eq "$(lsns -p "$OLD_PID" -o NS -t user -n)" "$(lsns -p "$NEW_PID" -o NS - systemctl stop oldservice newservice # Reuse the user and network namespaces -systemd-run --unit=oldservice --property=PrivateUsers=true --property=PrivateNetwork=true sleep 3600 -sleep .2 +systemd-run --unit=oldservice --property=Type=exec --property=PrivateUsers=true --property=PrivateNetwork=true sleep 3600 OLD_PID=$(systemctl show oldservice -p MainPID | awk -F= '{print $2}') -systemd-run --unit=newservice --property=UserNamespacePath=/proc/"$OLD_PID"/ns/user --property=NetworkNamespacePath=/proc/"$OLD_PID"/ns/net sleep 3600 -sleep .2 +systemd-run --unit=newservice --property=Type=exec --property=UserNamespacePath=/proc/"$OLD_PID"/ns/user --property=NetworkNamespacePath=/proc/"$OLD_PID"/ns/net sleep 3600 NEW_PID=$(systemctl show newservice -p MainPID | awk -F= '{print $2}') assert_eq "$(lsns -p "$OLD_PID" -o NS -t net -n)" "$(lsns -p "$NEW_PID" -o NS -t net -n)" @@ -44,12 +40,10 @@ assert_eq "$(lsns -p "$OLD_PID" -o NS -t user -n)" "$(lsns -p "$NEW_PID" -o NS - systemctl stop oldservice newservice # Delegate the network namespace -systemd-run --unit=oldservice --property=PrivateUsers=true sleep 3600 -sleep .2 +systemd-run --unit=oldservice --property=Type=exec --property=PrivateUsers=true sleep 3600 OLD_PID=$(systemctl show oldservice -p MainPID | awk -F= '{print $2}') -systemd-run --unit=newservice --property=UserNamespacePath=/proc/"$OLD_PID"/ns/user --property=DelegateNamespaces=net --property=PrivateNetwork=true sleep 3600 -sleep .2 +systemd-run --unit=newservice --property=Type=exec --property=UserNamespacePath=/proc/"$OLD_PID"/ns/user --property=DelegateNamespaces=net --property=PrivateNetwork=true sleep 3600 NEW_PID=$(systemctl show newservice -p MainPID | awk -F= '{print $2}') assert_neq "$(lsns -p "$OLD_PID" -o NS -t net -n)" "$(lsns -p "$NEW_PID" -o NS -t net -n)"