From 15eda898af77bd3f5ec743497b72e86f3fadc5af Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Thu, 9 Mar 2023 11:34:14 +0100 Subject: [PATCH 1/5] test: ignore `busctl tree` fails As the test runs during machine bootup where jobs run in parallel, busctl might attempt to introspect a job that already finished and fail. Since in this case we're more interested in crashes/leaks, let's ignore the exit code. Follow-up to 16600a8661. --- test/units/testsuite-74.busctl.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/units/testsuite-74.busctl.sh b/test/units/testsuite-74.busctl.sh index 44d8032d8b..6e905a025a 100755 --- a/test/units/testsuite-74.busctl.sh +++ b/test/units/testsuite-74.busctl.sh @@ -19,7 +19,10 @@ busctl status busctl status --machine=.host --augment-creds=no busctl status --user --machine=testuser@.host busctl status org.freedesktop.systemd1 -busctl tree +# Ignore the exit code here, since this runs during machine bootup, so busctl +# might attempt to introspect a job that already finished and fail, i.e.: +# Failed to introspect object /org/freedesktop/systemd1/job/335 of service org.freedesktop.systemd1: Unknown object '/org/freedesktop/systemd1/job/335'. +busctl tree || : busctl tree org.freedesktop.login1 busctl tree --list org.freedesktop.login1 busctl introspect org.freedesktop.systemd1 /org/freedesktop/systemd1 From 72f6d0e556d29b695369493a909562ff1325f8cd Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Thu, 9 Mar 2023 13:27:57 +0100 Subject: [PATCH 2/5] test: bump the D-Bus related timeouts to 120s Let's attempt to reduce the amount of flakes further when the AWS region we run in is under heavy load and the hypervisor stars stealing our CPU time. Follow-up to e0cbb73911 and c78d18215b. --- test/test-functions | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test-functions b/test/test-functions index d60a9bfedd..252aea57a1 100644 --- a/test/test-functions +++ b/test/test-functions @@ -1940,12 +1940,12 @@ EOF - 60000 + 120000 EOF # Bump the client-side timeout in sd-bus as well mkdir -p "$initdir/etc/systemd/system.conf.d" - echo -e '[Manager]\nDefaultEnvironment=SYSTEMD_BUS_TIMEOUT=60' >"$initdir/etc/systemd/system.conf.d/bus-timeout.conf" + echo -e '[Manager]\nDefaultEnvironment=SYSTEMD_BUS_TIMEOUT=120' >"$initdir/etc/systemd/system.conf.d/bus-timeout.conf" fi } From cca295ab7ac32ddc9626c0e3a935d54630445050 Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Thu, 9 Mar 2023 13:32:56 +0100 Subject: [PATCH 3/5] test: don't fail if we can't remove the scsi_debug module Let's make the cleanup 'best effort' operation, as sometimes we might not be able to remove the scsi_debug module, and we don't really care if it stays loaded: [ 88.521333] testsuite-17.sh[1827]: ID_TEST=test [ 88.522015] testsuite-17.sh[1679]: + rmmod scsi_debug [ 88.524795] testsuite-17.sh[1828]: rmmod: ERROR: Module scsi_debug is in use [ 88.527786] testsuite-17.sh[1679]: + cleanup_17_10 --- test/units/testsuite-17.10.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/units/testsuite-17.10.sh b/test/units/testsuite-17.10.sh index 6978d2a1d6..8ff214baee 100755 --- a/test/units/testsuite-17.10.sh +++ b/test/units/testsuite-17.10.sh @@ -145,8 +145,8 @@ EOF udevadm test-builtin hwdb "$scsidev" - rmmod scsi_debug - rm -f /etc/udev/hwdb.d/99-test.hwdb + rmmod scsi_debug || : + rm -fv /etc/udev/hwdb.d/99-test.hwdb systemd-hwdb update fi From b3ba7d6274aff864a80dc9b1ff7d88ad376da451 Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Thu, 9 Mar 2023 13:50:15 +0100 Subject: [PATCH 4/5] test: force mkfs.btrfs to overwrite any existing file systems mkfs.btrfs (unlike mkfs.ext4) checks if the target already contains a file system and refuses to continue if so. This causes spurious fails in case the random garbage on the temporary device matches a valid FS header: [ 19.723806] testsuite-64.sh[355]: + udevadm lock --device=/dev/mapper/encbtrfs0 --device=/dev/mapper/encbtrfs1 --device=/dev/mapper/encbtrfs2 --device=/dev/mapper/encbtrfs3 mkfs.btrfs -M -d raid1 -m raid1 -L btrfs_mencdisk -U deadbeef-dead-dead-beef-000000000003 /dev/mapper/encbtrfs0 /dev/mapper/encbtrfs1 /dev/mapper/encbtrfs2 /dev/mapper/encbtrfs3 [ 19.918934] testsuite-64.sh[2494]: ERROR: /dev/mapper/encbtrfs0 appears to contain an existing filesystem (hfsplus) [ 19.920490] testsuite-64.sh[2494]: ERROR: use the -f option to force overwrite of /dev/mapper/encbtrfs0 Let's force mkfs.btrfs to overwrite the file system in such case. --- test/units/testsuite-64.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/units/testsuite-64.sh b/test/units/testsuite-64.sh index 4d73c57aeb..fbab282334 100755 --- a/test/units/testsuite-64.sh +++ b/test/units/testsuite-64.sh @@ -646,7 +646,7 @@ testcase_btrfs_basic() { echo "Single device: default settings" uuid="deadbeef-dead-dead-beef-000000000000" label="btrfs_root" - udevadm lock --device="${devices[0]}" mkfs.btrfs -L "$label" -U "$uuid" "${devices[0]}" + udevadm lock --device="${devices[0]}" mkfs.btrfs -f -L "$label" -U "$uuid" "${devices[0]}" udevadm wait --settle --timeout=30 "${devices[0]}" "/dev/disk/by-uuid/$uuid" "/dev/disk/by-label/$label" btrfs filesystem show helper_check_device_symlinks @@ -664,7 +664,7 @@ name="diskpart3", size=85M name="diskpart4", size=85M EOF udevadm wait --settle --timeout=30 /dev/disk/by-partlabel/diskpart{1..4} - udevadm lock --device="${devices[0]}" mkfs.btrfs -d single -m raid1 -L "$label" -U "$uuid" /dev/disk/by-partlabel/diskpart{1..4} + udevadm lock --device="${devices[0]}" mkfs.btrfs -f -d single -m raid1 -L "$label" -U "$uuid" /dev/disk/by-partlabel/diskpart{1..4} udevadm wait --settle --timeout=30 "/dev/disk/by-uuid/$uuid" "/dev/disk/by-label/$label" btrfs filesystem show helper_check_device_symlinks @@ -680,7 +680,7 @@ EOF --device=/dev/disk/by-id/ata-foobar_deadbeefbtrfs1 \ --device=/dev/disk/by-id/ata-foobar_deadbeefbtrfs2 \ --device=/dev/disk/by-id/ata-foobar_deadbeefbtrfs3 \ - mkfs.btrfs -M -d raid10 -m raid10 -L "$label" -U "$uuid" "${devices[@]}" + mkfs.btrfs -f -M -d raid10 -m raid10 -L "$label" -U "$uuid" "${devices[@]}" udevadm wait --settle --timeout=30 "/dev/disk/by-uuid/$uuid" "/dev/disk/by-label/$label" btrfs filesystem show helper_check_device_symlinks @@ -720,7 +720,7 @@ EOF --device=/dev/mapper/encbtrfs1 \ --device=/dev/mapper/encbtrfs2 \ --device=/dev/mapper/encbtrfs3 \ - mkfs.btrfs -M -d raid1 -m raid1 -L "$label" -U "$uuid" /dev/mapper/encbtrfs{0..3} + mkfs.btrfs -f -M -d raid1 -m raid1 -L "$label" -U "$uuid" /dev/mapper/encbtrfs{0..3} udevadm wait --settle --timeout=30 "/dev/disk/by-uuid/$uuid" "/dev/disk/by-label/$label" btrfs filesystem show helper_check_device_symlinks From 715b4c26dc9f447a8d7b8cab33c243e15386ce2c Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Thu, 9 Mar 2023 15:27:48 +0100 Subject: [PATCH 5/5] test: fall back to /sys/fs/cgroup/systemd if necessary Necessary for some CI setups where we boot an nspawn container on a host with older systemd with legacy hierarchy, so systemd mounts its stuff under /sys/fs/cgroup/systemd. --- test/units/testsuite-74.cgls.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/units/testsuite-74.cgls.sh b/test/units/testsuite-74.cgls.sh index 120570c9cc..9268f42baa 100755 --- a/test/units/testsuite-74.cgls.sh +++ b/test/units/testsuite-74.cgls.sh @@ -14,7 +14,8 @@ systemd-cgls --cgroup-id=no systemd-cgls /system.slice/systemd-journald.service systemd-cgls /system.slice/systemd-journald.service /init.scope systemd-cgls /sys/fs/cgroup/system.slice/systemd-journald.service /init.scope -(cd /sys/fs/cgroup/init.scope && systemd-cgls) +[[ -d /sys/fs/cgroup/init.scope ]] && init_scope="init.scope" || init_scope="systemd/init.scope" +(cd "/sys/fs/cgroup/$init_scope" && systemd-cgls) systemd-cgls --unit=systemd-journald.service # There's most likely no user session running, so we need to create one systemd-run --user --wait --pipe -M testuser@.host systemd-cgls --user-unit=app.slice