armbian-next: retry 3 times for loop device's size, then give up; introduce RETRY_RUNS in do_with_retries()

This commit is contained in:
Ricardo Pardini
2022-10-16 11:47:47 +02:00
parent b9daf6d708
commit a612a03678
2 changed files with 9 additions and 2 deletions

View File

@@ -35,8 +35,13 @@ function check_loop_device_internal() {
run_host_command_logged ls -la "${device}"
run_host_command_logged lsblk
run_host_command_logged blkid
display_alert "Device node exists but is 0-sized" "${device}" "debug"
# only break on the first 3 iteractions. then give up; let it try to use the device...
if [[ ${RETRY_RUNS} -lt 4 ]]; then
display_alert "Device node exists but is 0-sized; retry ${RETRY_RUNS}" "${device}" "warn"
return 1
else
display_alert "Device node exists but is 0-sized; proceeding anyway" "${device}" "warn"
fi
fi
fi

View File

@@ -253,12 +253,14 @@ function do_with_retries() {
local counter=0
while [[ $counter -lt $retries ]]; do
counter=$((counter + 1))
declare -i RETRY_RUNS=${counter}
"$@" && return 0 # execute and return 0 if success; if not, let it loop;
if [[ "${silent_retry}" == "yes" ]]; then
: # do nothing
else
display_alert "Command failed, retrying in ${sleep_seconds}s" "$*" "warn"
fi
unset RETRY_RUNS
sleep ${sleep_seconds}
done
display_alert "Command failed ${counter} times, giving up" "$*" "warn"