]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: set timeout for udevadm settle/wait/lock
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 2 Apr 2025 16:48:19 +0000 (01:48 +0900)
committerLuca Boccassi <luca.boccassi@gmail.com>
Mon, 4 Aug 2025 15:03:05 +0000 (16:03 +0100)
Otherwise, if a test in a spurious state, it consumes quite long time.
Let's fail earlier in such case.

This also drops an unnecessary calls of 'udevadm settle' in
testcase_nvme_basic() of TEST-64-UDEV-STORAGE.

(cherry picked from commit 3ff6d023202f040c3405dc7625f7b689c0505305)

18 files changed:
test/units/TEST-13-NSPAWN.nspawn.sh
test/units/TEST-17-UDEV.06.sh
test/units/TEST-17-UDEV.10.sh
test/units/TEST-17-UDEV.SYSTEMD_WANTS-escape.sh
test/units/TEST-17-UDEV.database.sh
test/units/TEST-17-UDEV.device_is_processing.sh
test/units/TEST-17-UDEV.diskseq.sh
test/units/TEST-24-CRYPTSETUP.sh
test/units/TEST-35-LOGIN.sh
test/units/TEST-50-DISSECT.sh
test/units/TEST-58-REPART.sh
test/units/TEST-60-MOUNT-RATELIMIT.sh
test/units/TEST-64-UDEV-STORAGE.sh
test/units/TEST-67-INTEGRITY.sh
test/units/TEST-76-SYSCTL.sh
test/units/TEST-84-STORAGETM.sh
test/units/TEST-87-AUX-UTILS-VM.bootctl.sh
test/units/TEST-87-AUX-UTILS-VM.mount.sh

index 7fe058cea256dbf95d42a84efc1c5f878c4053ff..c827d9cda730478d772e394e1b03851804793961 100755 (executable)
@@ -394,7 +394,7 @@ testcase_nspawn_settings() {
     for dev in sd-host-only sd-shared{1,2,3} sd-macvlan{1,2} sd-macvlanloong sd-ipvlan{1,2} sd-ipvlanlooong; do
         ip link add "$dev" type dummy
     done
-    udevadm settle
+    udevadm settle --timeout=30
     ip link property add dev sd-shared3 altname sd-altname3 altname sd-altname-tooooooooooooo-long
     ip link
     trap nspawn_settings_cleanup RETURN
index c9493becbd0938de79cfe2928efffdc0b116cdef..410f5a7f7785be09277d3e704cf09d871b216e42 100755 (executable)
@@ -19,7 +19,7 @@ function check() {
     for _ in {1..2}; do
         systemctl restart systemd-udevd.service
         udevadm control --ping
-        udevadm settle
+        udevadm settle --timeout=30
         check_validity
 
         for _ in {1..2}; do
index b8023571b2e9cf43dfd4c173920ec33301f695e1..a770a68f27e62f5cfde67daaa2af890ba3370788 100755 (executable)
@@ -28,6 +28,9 @@ blk="$(mktemp)"
 dd if=/dev/zero of="$blk" bs=1M count=1
 loopdev="$(losetup --show -f "$blk")"
 
+# Wait for devices created in the above being processed.
+udevadm settle --timeout=30
+
 udevadm -h
 
 udevadm control -e
index 709161aa64f83268a8088af8effc70d8bc886175..e37feaf89d1a463a5de433383c6411f7e423aef5 100755 (executable)
@@ -27,7 +27,7 @@ at_exit() {
 
 trap at_exit EXIT
 
-udevadm settle --timeout 30
+udevadm settle --timeout=30
 
 mkdir -p /run/systemd/system/
 cat >/run/systemd/system/test@.service <<EOF
@@ -53,7 +53,7 @@ ESCAPED=$(systemd-escape -p "${SYSPATH}")
 SHELL_ESCAPED=$(printf '%q' "${ESCAPED}")
 assert_eq "$(systemd-escape -u -p "${ESCAPED}")" "${SYSPATH}"
 
-udevadm wait --timeout 30 --settle "/sys/class/net/${IFNAME}"
+udevadm wait --timeout=30 --settle "/sys/class/net/${IFNAME}"
 assert_eq "$(udevadm info --query=property --property SYSTEMD_WANTS --value "/sys/class/net/${IFNAME}")" "test@${ESCAPED}.service"
 # The value shown by systemctl is doubly escaped and quoted.
 assert_eq "$(systemctl show -p Wants --value "${ESCAPED}.device")" "\"test@${SHELL_ESCAPED}.service\""
index 2b66333cadb318c61ed5bd1422d8d54f88ec89a2..9e507105d418fe3df7d5374960edf833f0cfad36 100755 (executable)
@@ -8,12 +8,12 @@ udevadm control --log-level=debug
 IFNAME=test-udev-aaa
 ip link add "$IFNAME" type dummy
 IFINDEX=$(ip -json link show "$IFNAME" | jq '.[].ifindex')
-udevadm wait --timeout 10 "/sys/class/net/$IFNAME"
+udevadm wait --timeout=10 "/sys/class/net/$IFNAME"
 # Check if the database file is created.
 [[ -e "/run/udev/data/n$IFINDEX" ]]
 
 ip link del "$IFNAME"
-udevadm wait --timeout 10 --removed --settle "/sys/class/net/$IFNAME"
+udevadm wait --timeout=10 --removed --settle "/sys/class/net/$IFNAME"
 # CHeck if the database file is removed.
 [[ ! -e "/run/udev/data/n$IFINDEX" ]]
 
index 88e4b5a6bd37434e47773cb8f1fab447f5e6c9dd..a79d8d0293506c787f198cc4a524faed13ded43f 100755 (executable)
@@ -24,7 +24,7 @@ at_exit() {
 
 trap at_exit EXIT
 
-udevadm settle
+udevadm settle --timeout=30
 
 mkdir -p /run/udev/udev.conf.d/
 cat >/run/udev/udev.conf.d/timeout.conf <<EOF
index 53ee666984f6320d9161fe505a2f4a0facde32b6..5f246bd328e4d2f89bfac7ef8e948b1a2c5d3716 100755 (executable)
@@ -42,7 +42,7 @@ MountImages=$TMPDIR/foo.raw:/var
 EOF
 systemctl daemon-reload
 
-udevadm settle
+udevadm settle --timeout=30
 
 # Check if no lock file exists, if the lock directory exists.
 if [[ -d /run/udev/links.lock/ ]]; then
@@ -62,7 +62,7 @@ done
 
 systemctl stop test-diskseq.service || :
 
-udevadm settle
+udevadm settle --timeout=30
 
 # Check if the lock directory exists, but no lock file exists in it.
 [[ -d /run/udev/links.lock/ ]]
index 9e86523d0e9a1d9e36b85baf318ec880942fa27c..be0efa013c8842a0cd5f1606d1fd68586442767f 100755 (executable)
@@ -143,18 +143,18 @@ cryptsetup luksAddKey --batch-mode \
 STORE_IMAGE="$WORKDIR/store.img"
 truncate -s 64M "$STORE_IMAGE"
 STORE_LOOP="$(losetup --show --find --partscan "$STORE_IMAGE")"
-udevadm lock --device "$STORE_LOOP" sfdisk "$STORE_LOOP" <<EOF
+udevadm lock --timeout=30 --device "$STORE_LOOP" sfdisk "$STORE_LOOP" <<EOF
 label: gpt
 type=0FC63DAF-8483-4772-8E79-3D69D8477DE4 name=header_store size=32M
 type=0FC63DAF-8483-4772-8E79-3D69D8477DE4 name=keyfile_store
 EOF
 udevadm settle --timeout=60
 mkdir -p /mnt
-udevadm lock --device "/dev/disk/by-partlabel/header_store" mkfs.ext4 -L header_store "/dev/disk/by-partlabel/header_store"
+udevadm lock --timeout=30 --device "/dev/disk/by-partlabel/header_store" mkfs.ext4 -L header_store "/dev/disk/by-partlabel/header_store"
 mount "/dev/disk/by-partlabel/header_store" /mnt
 cp "$IMAGE_DETACHED_HEADER" /mnt/header
 umount /mnt
-udevadm lock --device "/dev/disk/by-partlabel/keyfile_store" mkfs.ext4 -L keyfile_store "/dev/disk/by-partlabel/keyfile_store"
+udevadm lock --timeout=30 --device "/dev/disk/by-partlabel/keyfile_store" mkfs.ext4 -L keyfile_store "/dev/disk/by-partlabel/keyfile_store"
 mount "/dev/disk/by-partlabel/keyfile_store" /mnt
 cp "$IMAGE_DETACHED_KEYFILE2" /mnt/keyfile
 umount /mnt
index b351eb7eb6ef469cae7b2370fd3cfedb840f790f..3c50458f994a8a9c1489cefff9cb3b7d714e7e51 100755 (executable)
@@ -207,7 +207,7 @@ EOF
     input_name=${input_name%/device/name}
     lid_dev=/dev/${input_name#/sys/class/}
     udevadm info --wait-for-initialization=10s "$lid_dev"
-    udevadm settle
+    udevadm settle --timeout=30
 
     # close lid
     evemu-event "$lid_dev" --sync --type 5 --code 0 --value 1
@@ -457,7 +457,7 @@ EOF
         echo "cannot find suitable scsi block device" >&2
         exit 1
     fi
-    udevadm settle
+    udevadm settle --timeout=30
     udevadm info "$dev"
 
     # trigger logind and activate session
@@ -476,7 +476,7 @@ EOF
         echo "cannot find suitable scsi block device" >&2
         exit 1
     fi
-    udevadm settle
+    udevadm settle --timeout=30
 
     # check ACL
     sleep 1
index 0e378a8e5b3718989d583eb81bc9dd99f58bc918..38bafa545fc53e5c80823e87d6c0bda480426810 100755 (executable)
@@ -199,11 +199,11 @@ if [[ -n "${OPENSSL_CONFIG:-}" ]]; then
 fi
 # The kernel sometimes(?) does not emit "add" uevent for loop block partition devices.
 # Let's not expect the devices to be initialized.
-udevadm wait --timeout 60 --settle --initialized=no "${partitions[@]}"
-udevadm lock --device="${loop}p1" dd if="$MINIMAL_IMAGE.raw" of="${loop}p1"
-udevadm lock --device="${loop}p2" dd if="$MINIMAL_IMAGE.verity" of="${loop}p2"
+udevadm wait --timeout=60 --settle --initialized=no "${partitions[@]}"
+udevadm lock --timeout=60 --device="${loop}p1" dd if="$MINIMAL_IMAGE.raw" of="${loop}p1"
+udevadm lock --timeout=60 --device="${loop}p2" dd if="$MINIMAL_IMAGE.verity" of="${loop}p2"
 if [[ -n "${OPENSSL_CONFIG:-}" ]]; then
-    udevadm lock --device="${loop}p3" dd if="$MINIMAL_IMAGE.verity-sig" of="${loop}p3"
+    udevadm lock --timeout=60 --device="${loop}p3" dd if="$MINIMAL_IMAGE.verity-sig" of="${loop}p3"
 fi
 losetup -d "$loop"
 udevadm settle --timeout=60
index b3181cea9963587d5ec5ef3bf2f21cf86f847d47..fe881ca194717b059fba8b9967be14dbbd03d2cf 100755 (executable)
@@ -373,7 +373,7 @@ $imgs/zzz7 : start=     6291416, size=      131072, type=0FC63DAF-8483-4772-8E79
     fi
 
     loop="$(losetup -P --show --find "$imgs/zzz")"
-    udevadm wait --timeout 60 --settle "${loop:?}p7"
+    udevadm wait --timeout=60 --settle "${loop:?}p7"
 
     volume="test-repart-$RANDOM"
 
@@ -961,7 +961,7 @@ EOF
     # shellcheck disable=SC2064
     trap "rm -rf '$defs' '$imgs' ; losetup -d '$loop'" RETURN ERR
 
-    udevadm wait --timeout 60 --settle "${loop:?}p1" "${loop:?}p2"
+    udevadm wait --timeout=60 --settle "${loop:?}p1" "${loop:?}p2"
 
     # Check that the verity block sizes are as expected
     veritysetup dump "${loop}p2" | grep 'Data block size:' | grep -q '4096'
@@ -1021,7 +1021,7 @@ EOF
     # shellcheck disable=SC2064
     trap "rm -rf '$defs' '$imgs' ; losetup -d '$loop'" RETURN ERR
 
-    udevadm wait --timeout 60 --settle "${loop:?}p1" "${loop:?}p2"
+    udevadm wait --timeout=60 --settle "${loop:?}p1" "${loop:?}p2"
 
     output=$(sfdisk -J "$loop")
 
@@ -1103,7 +1103,7 @@ EOF
     fi
 
     loop=$(losetup -P --show -f "$imgs/zzz")
-    udevadm wait --timeout 60 --settle "${loop:?}p1" "${loop:?}p2"
+    udevadm wait --timeout=60 --settle "${loop:?}p1" "${loop:?}p2"
 
     # Test that /usr/def did not end up in the root partition but other files did.
     mkdir "$imgs/mnt"
@@ -1316,7 +1316,7 @@ EOF
 
     truncate -s 100m "$imgs/$sector.img"
     loop=$(losetup -b "$sector" -P --show -f "$imgs/$sector.img" )
-    udevadm wait --timeout 60 --settle "${loop:?}"
+    udevadm wait --timeout=60 --settle "${loop:?}"
 
     systemd-repart --offline="$OFFLINE" \
                    --pretty=yes \
index 3f27a16bebe2b44121b7b967c335d246e51102ab..67d44c281a938433f5a0dd408a27ce4220c6739f 100755 (executable)
@@ -42,8 +42,8 @@ label:gpt
 name="loop${1?}-part1"
 EOF
     LOOP=$(losetup -P --show -f "/tmp/TEST-60-MOUNT-RATELIMIT-dependencies-${1?}.img")
-    udevadm wait --settle --timeout=10 "${LOOP}"
-    udevadm lock --device="${LOOP}" mkfs.ext4 -L "partname${1?}-1" "${LOOP}p1"
+    udevadm wait --settle --timeout=30 "${LOOP}"
+    udevadm lock --timeout=30 --device="${LOOP}" mkfs.ext4 -L "partname${1?}-1" "${LOOP}p1"
 }
 
 check_dependencies() {
index 01c3dd68ead0dee1901208116954135f83514fc2..52914c4b3e70be27a494aed8a1e6de4b5ca31da3 100755 (executable)
@@ -214,7 +214,6 @@ testcase_nvme_basic() {
         )
     done
 
-    udevadm settle
     ls /dev/disk/by-id
     for i in "${expected_symlinks[@]}"; do
         udevadm wait --settle --timeout=30 "$i"
@@ -250,7 +249,7 @@ testcase_virtio_scsi_identically_named_partitions() {
     fi
 
     for ((i = 0; i < num_disk; i++)); do
-        udevadm lock --device "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive$i" \
+        udevadm lock --timeout=30 --device "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive$i" \
                 sfdisk "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive$i" <<EOF
 label: gpt
 
@@ -258,7 +257,7 @@ $(for ((j = 1; j <= num_part; j++)); do echo 'name="Hello world", size=2M'; done
 EOF
     done
 
-    udevadm settle
+    udevadm settle --timeout=30
     lsblk --noheadings -a -o NAME,PARTLABEL
     [[ "$(lsblk --noheadings -a -o NAME,PARTLABEL | grep -c "Hello world")" -eq "$((num_part * num_disk))" ]]
 }
@@ -283,7 +282,7 @@ blacklist {
 }
 EOF
 
-    udevadm lock --device /dev/disk/by-id/wwn-0xdeaddeadbeef0000 \
+    udevadm lock --timeout=30 --device /dev/disk/by-id/wwn-0xdeaddeadbeef0000 \
             sfdisk /dev/disk/by-id/wwn-0xdeaddeadbeef0000 <<EOF
 label: gpt
 
@@ -291,19 +290,19 @@ name="first_partition", size=5M
 uuid="deadbeef-dead-dead-beef-000000000000", name="failover_part", size=5M
 EOF
     # Partitioning triggers a synthesized event. Wait for the event being finished.
-    udevadm settle
+    udevadm settle --timeout=30
 
-    udevadm lock --device /dev/disk/by-id/wwn-0xdeaddeadbeef0000-part2 \
+    udevadm lock --timeout=30 --device /dev/disk/by-id/wwn-0xdeaddeadbeef0000-part2 \
             mkfs.ext4 -U "deadbeef-dead-dead-beef-111111111111" -L "failover_vol" /dev/disk/by-id/wwn-0xdeaddeadbeef0000-part2
     # Making filesystem triggers a synthesized event. Wait for the event being finished.
-    udevadm settle
+    udevadm settle --timeout=30
 
     modprobe -v dm_multipath
     systemctl start multipathd.service
     systemctl status multipathd.service
     # multipathd touches many devices on start. multipath command may fail if it is invoked before the
     # initial setup finished. Let's wait for a while.
-    udevadm settle
+    udevadm settle --timeout=30
     multipath -ll
     ls -l /dev/disk/by-id/
 
@@ -428,7 +427,7 @@ EOF
 
     # initialize partition table
     for disk in {0..9}; do
-        echo 'label: gpt' | udevadm lock --device="${devices[$disk]}" sfdisk -q "${devices[$disk]}"
+        echo 'label: gpt' | udevadm lock --timeout=30 --device="${devices[$disk]}" sfdisk -q "${devices[$disk]}"
     done
 
     # Delete the partitions, immediately recreate them, wait for udev to settle
@@ -440,9 +439,9 @@ EOF
     for ((i = 1; i <= iterations; i++)); do
         for disk in {0..9}; do
             if ((disk % 2 == i % 2)); then
-                udevadm lock --device="${devices[$disk]}" sfdisk -q --delete "${devices[$disk]}" &
+                udevadm lock --timeout=30 --device="${devices[$disk]}" sfdisk -q --delete "${devices[$disk]}" &
             else
-                udevadm lock --device="${devices[$disk]}" sfdisk -q -X gpt "${devices[$disk]}" <"$partscript" &
+                udevadm lock --timeout=30 --device="${devices[$disk]}" sfdisk -q -X gpt "${devices[$disk]}" <"$partscript" &
             fi
             running[$disk]=$!
         done
@@ -518,7 +517,7 @@ EOF
     for ((i = 1; i <= iterations; i++)); do
 
         for disk in {0..9}; do
-            udevadm lock --device="${devices[$disk]}" sfdisk -q --delete "${devices[$disk]}" &
+            udevadm lock --timeout="$timeout" --device="${devices[$disk]}" sfdisk -q --delete "${devices[$disk]}" &
             running[$disk]=$!
         done
 
@@ -528,7 +527,7 @@ EOF
         done
 
         for disk in {0..9}; do
-            udevadm lock --device="${devices[$disk]}" sfdisk -q -X gpt "${devices[$disk]}" <"$script_dir/partscript-$i" &
+            udevadm lock --timeout="$timeout" --device="${devices[$disk]}" sfdisk -q -X gpt "${devices[$disk]}" <"$script_dir/partscript-$i" &
             running[$disk]=$!
         done
 
@@ -744,7 +743,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 -f -L "$label" -U "$uuid" "${devices[0]}"
+    udevadm lock --timeout=30 --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
@@ -753,7 +752,7 @@ testcase_btrfs_basic() {
     echo "Multiple devices: using partitions, data: single, metadata: raid1"
     uuid="deadbeef-dead-dead-beef-000000000001"
     label="btrfs_mpart"
-    udevadm lock --device="${devices[0]}" sfdisk --wipe=always "${devices[0]}" <<EOF
+    udevadm lock --timeout=30 --device="${devices[0]}" sfdisk --wipe=always "${devices[0]}" <<EOF
 label: gpt
 
 name="diskpart1", size=85M
@@ -762,7 +761,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 -f -d single -m raid1 -L "$label" -U "$uuid" /dev/disk/by-partlabel/diskpart{1..4}
+    udevadm lock --timeout=30 --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
@@ -774,6 +773,7 @@ EOF
     uuid="deadbeef-dead-dead-beef-000000000002"
     label="btrfs_mdisk"
     udevadm lock \
+            --timeout=30 \
             --device=/dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs0 \
             --device=/dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs1 \
             --device=/dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs2 \
@@ -798,7 +798,7 @@ EOF
     for ((i = 0; i < ${#devices[@]}; i++)); do
         # Intentionally use weaker cipher-related settings, since we don't care
         # about security here as it's a throwaway LUKS partition
-        udevadm lock --device="${devices[$i]}" \
+        udevadm lock --timeout=30 --device="${devices[$i]}" \
                 cryptsetup luksFormat -q \
                 --use-urandom --pbkdf pbkdf2 --pbkdf-force-iterations 1000 \
                 --uuid "deadbeef-dead-dead-beef-11111111111$i" --label "encdisk$i" "${devices[$i]}" /etc/btrfs_keyfile
@@ -815,6 +815,7 @@ EOF
     ls -l /dev/mapper/encbtrfs{0..3}
     # Create a multi-device btrfs filesystem on the LUKS devices
     udevadm lock \
+            --timeout=30 \
             --device=/dev/mapper/encbtrfs0 \
             --device=/dev/mapper/encbtrfs1 \
             --device=/dev/mapper/encbtrfs2 \
@@ -858,7 +859,7 @@ EOF
     : >/etc/crypttab
     rm -fr "$mpoint"
     systemctl daemon-reload
-    udevadm settle
+    udevadm settle --timeout=30
 }
 
 testcase_iscsi_lvm() {
@@ -925,7 +926,7 @@ testcase_iscsi_lvm() {
     mpoint="$(mktemp -d /iscsi_storeXXX)"
     expected_symlinks=()
     # Use the first device as it's configured with larger capacity
-    udevadm lock --device "${devices[0]}" mkfs.ext4 -L iscsi_store "${devices[0]}"
+    udevadm lock --timeout=30 --device "${devices[0]}" mkfs.ext4 -L iscsi_store "${devices[0]}"
     udevadm wait --settle --timeout=30 "${devices[0]}"
     mount "${devices[0]}" "$mpoint"
     for i in {1..4}; do
@@ -1012,15 +1013,15 @@ testcase_long_sysfs_path() {
     stat "/sys/block/${dev}"
     readlink -f "/sys/block/${dev}/dev"
 
-    udevadm lock --device "/dev/${dev}" sfdisk "/dev/${dev}" <<EOF
+    udevadm lock --timeout=30 --device "/dev/${dev}" sfdisk "/dev/${dev}" <<EOF
 label: gpt
 
 name="test_swap", size=32M
 uuid="deadbeef-dead-dead-beef-000000000000", name="test_part", size=5M
 EOF
-    udevadm settle
-    udevadm lock --device "/dev/${dev}1" mkswap -U "deadbeef-dead-dead-beef-111111111111" -L "swap_vol" "/dev/${dev}1"
-    udevadm lock --device "/dev/${dev}2" mkfs.ext4 -U "deadbeef-dead-dead-beef-222222222222" -L "data_vol" "/dev/${dev}2"
+    udevadm settle --timeout=30
+    udevadm lock --timeout=30 --device "/dev/${dev}1" mkswap -U "deadbeef-dead-dead-beef-111111111111" -L "swap_vol" "/dev/${dev}1"
+    udevadm lock --timeout=30 --device "/dev/${dev}2" mkfs.ext4 -U "deadbeef-dead-dead-beef-222222222222" -L "data_vol" "/dev/${dev}2"
     udevadm wait --settle --timeout=30 "${expected_symlinks[@]}"
 
     # Try to mount the data partition manually (using its label)
@@ -1040,7 +1041,7 @@ EOF
     swapon -v -L swap_vol
     swapoff -v -L swap_vol
 
-    udevadm settle
+    udevadm settle --timeout=30
 
     logfile="$(mktemp)"
     # Check state of affairs after https://github.com/systemd/systemd/pull/22759
@@ -1258,7 +1259,7 @@ fi
 
 echo "TEST_FUNCTION_NAME=$TEST_FUNCTION_NAME"
 "$TEST_FUNCTION_NAME"
-udevadm settle
+udevadm settle --timeout=60
 
 echo "Check if all symlinks under /dev/disk/ are valid (post-test)"
 helper_check_device_symlinks
index 6a464c40ab2fdbe35066867a0d72025b6efd4ff3..c015703666f4a2befbe7e3e89444582f26e00180 100755 (executable)
@@ -87,7 +87,7 @@ test_one() {
     udevadm wait --timeout=30 --settle "${DM_NODE}"
     mkfs.ext4 -U "${FS_UUID}" "${DM_NODE}"
     # Wait for synthetic events being processed.
-    udevadm settle
+    udevadm settle --timeout=30
     integritysetup close "${DM_NAME}"
     udevadm wait --timeout=30 --settle --removed "${DM_NODE}"
 
index 855d0ef1f848273bbdd7d36bc2a2b4fae83a407d..04d89b8252a5ee6e7337b9aca2048150f792b6c6 100755 (executable)
@@ -18,7 +18,7 @@ assert_rc 0 /usr/lib/systemd/systemd-sysctl --strict /tmp/foo.conf
 
 if ! systemd-detect-virt --quiet --container; then
     ip link add hoge type dummy
-    udevadm wait /sys/class/net/hoge
+    udevadm wait --timeout=30 /sys/class/net/hoge
 
     cat >/tmp/foo.conf <<EOF
 net.ipv4.conf.*.drop_gratuitous_arp=1
index 921bc1d2508c097c4d99fe38bd346a3a6ee86654..8d4fdbcf235e769ed0018b31c2f700970b353d98 100755 (executable)
@@ -30,7 +30,7 @@ systemd-run -u teststoragetm.service -p Type=notify -p "Environment=SYSTEMD_NVME
 NVME_DEVICE="/dev/disk/by-id/nvme-uuid.${NVME_UUID:?}"
 
 nvme connect-all "${VERBOSE}" -t tcp -a 127.0.0.1 -s 16858 --hostnqn="$(nvme gen-hostnqn)"
-udevadm wait --settle "$NVME_DEVICE"
+udevadm wait --settle --timeout=30 "$NVME_DEVICE"
 
 dd if="$NVME_DEVICE" bs=1024 | cmp /var/tmp/storagetm.test -
 
index 5a9d8fb27f9245d64e57b75aad809ec354f58098..5f12313a840f0b14aaf26cf12ede6f6a0d198532 100755 (executable)
@@ -77,7 +77,7 @@ cleanup_image() (
         unset LOOPDEV
     fi
 
-    udevadm settle
+    udevadm settle --timeout=30
 
     rm -rf "${IMAGE_DIR}"
     unset IMAGE_DIR
@@ -101,7 +101,7 @@ EOF
     LOOPDEV="$(losetup --show -P -f "${IMAGE_DIR}/image")"
     sfdisk "$LOOPDEV" <"${IMAGE_DIR}/partscript"
 
-    udevadm settle
+    udevadm settle --timeout=30
 
     mkfs.vfat -n esp  "${LOOPDEV}p1"
     mkfs.ext4 -L root "${LOOPDEV}p2"
@@ -158,7 +158,7 @@ cleanup_raid() (
         mdadm --misc --force --zero-superblock "${LOOPDEV2}p2"
     fi
 
-    udevadm settle
+    udevadm settle --timeout=30
 
     if [[ -n "${LOOPDEV1:-}" ]]; then
         mdadm --misc --force --zero-superblock "${LOOPDEV1}p1"
@@ -174,7 +174,7 @@ cleanup_raid() (
         unset LOOPDEV2
     fi
 
-    udevadm settle
+    udevadm settle --timeout=30
 
     rm -rf "${IMAGE_DIR}"
 
@@ -210,7 +210,7 @@ EOF
     sfdisk "$LOOPDEV1" <"${IMAGE_DIR}/partscript"
     sfdisk "$LOOPDEV2" <"${IMAGE_DIR}/partscript"
 
-    udevadm settle
+    udevadm settle --timeout=30
 
     printf 'y\ny\n' | mdadm --create /dev/md/raid-esp --name "raid-esp" "${LOOPDEV1}p1" "${LOOPDEV2}p1" -v -f --level=1 --raid-devices=2
     mkfs.vfat /dev/md/raid-esp
index 3075d0fe2eb16d0603bc138a88777bd274ee6249..701defc3c6eb22cedba4bf9212b120fa20af2ee4 100755 (executable)
@@ -46,7 +46,7 @@ systemd-umount "$WORK_DIR/overlay"
 dd if=/dev/zero of="$WORK_DIR/simple.img" bs=1M count=16
 mkfs.ext4 -L sd-mount-test "$WORK_DIR/simple.img"
 LOOP="$(losetup --show --find "$WORK_DIR/simple.img")"
-udevadm wait --timeout 60 --settle "$LOOP"
+udevadm wait --timeout=60 --settle "$LOOP"
 # Also wait for the .device unit for the loop device is active. Otherwise, the .device unit activation
 # that is triggered by the .mount unit introduced by systemd-mount below may time out.
 timeout 60 bash -c "until systemctl is-active $LOOP; do sleep 1; done"
@@ -139,7 +139,7 @@ systemd-mount --discover "$WORK_DIR/simple.img"
 # We can access files in the image even if the loopback block device is not initialized by udevd.
 test -e /run/media/system/simple.img/foo.bar
 # systemd-mount --list and systemd-umount require the loopback block device is initialized by udevd.
-udevadm settle --timeout 30
+udevadm settle --timeout=30
 assert_in "/dev/loop.* ext4 +sd-mount-test" "$(systemd-mount --list --full)"
 LOOP_AUTO=$(systemd-mount --list --full --no-legend | awk '$7 == "sd-mount-test" { print $1 }')
 LOOP_AUTO_DEVPATH=$(udevadm info --query property --property DEVPATH --value "$LOOP_AUTO")