-
David Munro authored
NEVER_FINISHED is one of the larger (and growing :'( ) error buckets. Add timeouts to every step to ensure that hangs are caught, turned into errors for the right state, and the user has a chance to retry. To get there we: 1. Add some timeouts, initially set to quite generous values which we'll tighten in future CLs. We have crosbolt data, but would like some real-world timings before getting stricter. 2. Add a metric tracking the time spent in each step, to give us a real-world breakdown to supplement what we have in crosbolt 3. Add a metric tracking how often we see invalid transitions. In theory a slow operation could send its response during the next restart attempt, and since there's no validation on the state transitions we'd end up in a weird state with unknown effects. There are options with varying thoroughness (and corresponding cost) to address this, but first let's see if it's actually a problem. This could already happen (though we haven't had reports) and there are some mitigations in place already so it may be a non-issue. Bug: 1142319 Test: Unit tests, mannually run installation + app launch. Change-Id: Iafd15cf8f659b9a29764ce399359a29711e35043 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2563042 Commit-Queue: David Munro <davidmunro@google.com> Reviewed-by:
Mark Pearson <mpearson@chromium.org> Reviewed-by:
Ryo Hashimoto <hashimoto@chromium.org> Reviewed-by:
Dominick Ng <dominickn@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Nicholas Verne <nverne@chromium.org> Reviewed-by:
Fergus Dall <sidereal@google.com> Cr-Commit-Position: refs/heads/master@{#836505}
d5b7ee52