• Mikel Astiz's avatar
    Fix sync protocol violation about birthday requirements · 956715c7
    Mikel Astiz authored
    The sync (store) birthday can only be empty during the very initial
    interactions with the server, when control datatypes are downloaded,
    after enabling sync (or the user signing in, for sync-the-transport
    mode).
    
    If, during startup, the birthday is empty, we should throw away all
    sync metadata and redownload everything. One way to do so is to
    regenerate the cache GUID, which datatypes detect as mismatch and
    leads to all sync metadata being cleared.
    
    As can seen in newly added tests, the scenario seems hard to
    reproduce, but we have server-side evidence that some users run into
    this issue (and would even DCHECK-fail for DCHECK-enabled builds).
    
    Bug: 923285
    Change-Id: If9e4807a086001931fd65f3e12a1ab53c4a33c9d
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1599456Reviewed-by: default avatarMarc Treib <treib@chromium.org>
    Commit-Queue: Mikel Astiz <mastiz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#658540}
    956715c7
loopback_server.h 9.63 KB