diff --git a/bsp-files/kickstarts/functions.sh b/bsp-files/kickstarts/functions.sh index 2e3a8711..1b187e15 100644 --- a/bsp-files/kickstarts/functions.sh +++ b/bsp-files/kickstarts/functions.sh @@ -9,13 +9,9 @@ cat </tmp/ks-functions.sh # SPDX-License-Identifier: Apache-2.0 # -# Get the FD used by subshells to log output -if [ -z "\$stdout" ]; then - exec {stdout}>&1 -fi - function wlog() { + [ -z "\$stdout" ] && stdout=1 local dt="\$(date "+%Y-%m-%d %H:%M:%S.%3N")" echo "\$dt - \$1" >&\${stdout} } diff --git a/bsp-files/kickstarts/pre_disk_setup_common.cfg b/bsp-files/kickstarts/pre_disk_setup_common.cfg index 84f5394d..e8c69a3f 100644 --- a/bsp-files/kickstarts/pre_disk_setup_common.cfg +++ b/bsp-files/kickstarts/pre_disk_setup_common.cfg @@ -1,5 +1,8 @@ %pre --erroronfail +# Get the FD used by subshells to log output +exec {stdout}>&1 + # Source common functions . /tmp/ks-functions.sh @@ -56,6 +59,12 @@ for f in /dev/disk/by-path/*; do fi done +# Filter STOR_DEVS variable for any duplicates as on some systems udev +# creates multiple links to the same device. This causes issues due to +# attempting to acquire a flock on the same device multiple times. +STOR_DEVS=$(echo "$STOR_DEVS" | xargs -n 1 | sort -u | xargs) +wlog "Unique storage devices: $STOR_DEVS." + if [ -z "$STOR_DEVS" ] then report_pre_failure_with_msg "ERROR: No storage devices available." diff --git a/bsp-files/kickstarts/pre_disk_setup_tail.cfg b/bsp-files/kickstarts/pre_disk_setup_tail.cfg index f11cdd37..7bd0af2c 100644 --- a/bsp-files/kickstarts/pre_disk_setup_tail.cfg +++ b/bsp-files/kickstarts/pre_disk_setup_tail.cfg @@ -13,7 +13,7 @@ do exec {fd}>&- done sleep 2 -udevadm settle || report_pre_failure_with_msg "ERROR: udevadm settle failed!" +udevadm settle --timeout=300 || report_pre_failure_with_msg "ERROR: udevadm settle failed!" # Rescan LVM cache to avoid warnings for VGs that were recreated. pvscan --cache