Fix #1674045 workaround for bootloader case

The initial implementation here has a problem if we spot the
'successful' screen briefly, then the system reboots normally,
reaches the bootloader and proceeds past it all within 10
seconds; in this case we'll never actually spot the bootloader
and do our stuff. This tweak should continue through the code
block immediately if the bootloader shows up during the ten
seconds, otherwise check again for the 'successful' screen and
reboot.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2019-03-11 18:34:13 -07:00
parent 2e75cfe5db
commit 6dde0ea0c9
1 changed files with 9 additions and 7 deletions

View File

@ -242,14 +242,16 @@ sub do_bootloader {
if (match_has_tag "upgrade_complete") {
# this is a workaround for RHBZ #1674045 during upgrades
# let's check we didn't just happen to catch it for the
# brief time it's displayed normally...
sleep 10;
if (check_screen "upgrade_complete") {
record_soft_failure "Upgrade hung at end - probably RHBZ #1674045";
power 'reset';
# brief time it's displayed normally, and catch the boot
# loader if it shows up
unless (check_screen $boottag, 10) {
if (check_screen "upgrade_complete") {
record_soft_failure "Upgrade hung at end - probably RHBZ #1674045";
power 'reset';
}
# now let's just assume we'll get to the bootloader soon
assert_screen $boottag, 60;
}
# now let's just assume we'll get to the bootloader soon
assert_screen $boottag, 60;
}
if ($args{mutex}) {
# cancel countdown