quick-provision: Await reboot before doing post check.
Quick provisioning path was erroneously expecting PostCheckCrOSUpdate
to await for reboot, while in the non-quick provisioning cases this was
being done prior to that call. This resulted in some race conditions
and a few attempts to work around it incorrectly. Now, quick
provisioning can just call AwaitReboot which will ensure that the DUT
has rebooted before doing any other provisioning.
BUG=chromium:812949
TEST=autotest/contrib/loadtest.py
CQ-DEPEND=932362
Change-Id: I93e680d92c8fb7e99008dc3783c10b7af620707a
Reviewed-on: https://chromium-review.googlesource.com/931937
Commit-Ready: David Riley <davidriley@chromium.org>
Tested-by: David Riley <davidriley@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
diff --git a/cros_update.py b/cros_update.py
index 49acfef..c1ec878 100644
--- a/cros_update.py
+++ b/cros_update.py
@@ -289,12 +289,15 @@
self._WriteAUStatus('Start Quick Provision')
keyvals = self._QuickProvision(device)
logging.debug('Start CrOS check process...')
+ self._WriteAUStatus('Finish Quick Provision, reboot')
+ chromeos_AU.AwaitReboot(keyvals.get('BOOT_ID'))
self._WriteAUStatus('Finish Quick Provision, post-check')
- chromeos_AU.PostCheckCrOSUpdate(keyvals.get('BOOT_ID'))
+ chromeos_AU.PostCheckCrOSUpdate()
self._WriteAUStatus(cros_update_progress.FINISHED)
invoke_autoupdate = False
except (cros_build_lib.RunCommandError,
- remote_access.SSHConnectionError) as e:
+ remote_access.SSHConnectionError,
+ auto_updater.RebootVerificationError) as e:
logging.warning('Error during quick provision, falling back: %s', e)
time.sleep(QUICK_PROVISION_FAILURE_DELAY_SEC)