1. 14 Dec, 2020 39 commits
  2. 13 Dec, 2020 1 commit
    • David Munro's avatar
      crostini: Timeouts for every step · d5b7ee52
      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: default avatarMark Pearson <mpearson@chromium.org>
      Reviewed-by: default avatarRyo Hashimoto <hashimoto@chromium.org>
      Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
      Reviewed-by: default avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: default avatarNicholas Verne <nverne@chromium.org>
      Reviewed-by: default avatarFergus Dall <sidereal@google.com>
      Cr-Commit-Position: refs/heads/master@{#836505}
      d5b7ee52