As reported by our UMA metric Sync.SesssionsDuplicateSyncId, way too many clients are affected by the duplicated-sync-id issue.
This means clients are missing synced tabs.
It also suggests the fix in https://chromium-review.googlesource.com/862394 is ineffective.
yusufo@: any chance you took a look at this problem?
I've come up with a hypothesis: we use BroadcastSessionRestoreComplete() to keep sync on hold while session restore is ongoing, which presumably works well during startup.
However, are you familiar with the transition from *not* having a tabbed activity (CCT running) and suddenly Chrome being started? Is that notified as ression restore starting again and completing?
Even if that was the case, I don't think sync handles it correctly.
I believe so.
So what calls BroadcastSessionRestoreComplete is TabModelSelectorImpl calling markTabStateInitialized which happens with no exceptions after the selector has loaded tab state. So should be true for CCT and also for Tabbed mode independently for each of their corresponding models.
With the patch above, we fully migrated away from sync IDs at the interface level (which is what the UMA metric reflected), so there can't be any more duplicates by definition.
Comment 1 by mastiz@chromium.org
, May 17 2018