• Vadim Shtayura's avatar
    [cipd] Try to bootstrap CIPD from scratch if selfupdate fails. · 7e50ee37
    Vadim Shtayura authored
    When updating the CIPD client to be identified by SHA256 hash, old clients (that
    have no idea about SHA256) fail during 'selfupdate'.
    
    We'll roll our SHA256 support in two stages:
      1. Deploy new client that understand SHA256 using its SHA1 name, so
         self-update from old clients works.
      2. Deploy same (or newer) client using its SHA256 name. This would work since
         the client doing the self-update already understands SHA256 at this point.
    
    But we can't guarantee that ALL depot_tools deployments will update through
    stages (1) and (2) sequentially. Some of them may skip (1) and end-up directly
    in (2), failing on 'selfupdate'.
    
    This CL makes sure they can recover from this state by rebootstraping the client
    from scratch (this works with SHA256 hashes).
    
    R=nodir@chromium.org, iannucci@chromium.org
    BUG=821194
    
    Change-Id: I27dece19e0305b5b2d6f8b0130631c1bf5f6499c
    Reviewed-on: https://chromium-review.googlesource.com/1149454
    Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
    Reviewed-by: 's avatarRobbie Iannucci <iannucci@chromium.org>
    7e50ee37
cipd_bootstrap_test.py 2.45 KB