Description[Sync] Stop dropping pending restarts from interleaved nudges.
This bug was discovered by the Kitchen Sync integration test
BothClientsEnabledEncryptionAndChangedMultipleTimes_E2ETest. What was
happening is that for a given client, it was mid PostTask "bounce" in
TrySyncCycleJob, when a second nudge was scheduled. This was allowed to
get through because the pending_wakeup_timer_ wasn't running.
However, when TrySyncCycleJobImpl contacted the server, we hit an error,
and the scheduler tried to call RestartWaiting(). This didn't have any
effect, because now the pending_wakeup_timer_ has a imminent nudge,
with a smaller delay time, and we had no way of knowing the priority of
the pending wakeup tasks.
The above is arguably all okay, but when the now pending nudge was run,
it has low priority, but we're in an error state, and this no-ops. And
at the end of PerformDelayedNudge we explicitly don't call
RestartWaiting(), which seems to be wrong.
BUG=721850
Review-Url: https://codereview.chromium.org/2911603003
Cr-Commit-Position: refs/heads/master@{#475748}
Committed: https://chromium.googlesource.com/chromium/src/+/e14851b28b8df63f1a8d2b6ce65b9f8d754bc9f5
Patch Set 1 #
Messages
Total messages: 17 (11 generated)
|