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
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
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
trap at_exit EXIT
-udevadm settle --timeout 30
+udevadm settle --timeout=30
mkdir -p /run/systemd/system/
cat >/run/systemd/system/test@.service <<EOF
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\""
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" ]]
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
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
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/ ]]
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
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
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
echo "cannot find suitable scsi block device" >&2
exit 1
fi
- udevadm settle
+ udevadm settle --timeout=30
# check ACL
sleep 1
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
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"
# 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'
# 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")
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"
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 \
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() {
)
done
- udevadm settle
ls /dev/disk/by-id
for i in "${expected_symlinks[@]}"; do
udevadm wait --settle --timeout=30 "$i"
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
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))" ]]
}
}
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
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/
# 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
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
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
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
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
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
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
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 \
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
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 \
: >/etc/crypttab
rm -fr "$mpoint"
systemctl daemon-reload
- udevadm settle
+ udevadm settle --timeout=30
}
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
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)
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
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
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}"
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
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 -
unset LOOPDEV
fi
- udevadm settle
+ udevadm settle --timeout=30
rm -rf "${IMAGE_DIR}"
unset IMAGE_DIR
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"
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"
unset LOOPDEV2
fi
- udevadm settle
+ udevadm settle --timeout=30
rm -rf "${IMAGE_DIR}"
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
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"
# 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")