Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(662)

Unified Diff: chrome/browser/sync/engine/sync_scheduler.cc

Issue 7861013: Fix the false-positive detection of commit errors (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Another attempt at detecting errors Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync/engine/sync_scheduler.cc
diff --git a/chrome/browser/sync/engine/sync_scheduler.cc b/chrome/browser/sync/engine/sync_scheduler.cc
index e2b235397257b6a937b5e3282001d79f7c7f073b..3d4dee1b02cfeb7e7a41562806fac835ab287499 100644
--- a/chrome/browser/sync/engine/sync_scheduler.cc
+++ b/chrome/browser/sync/engine/sync_scheduler.cc
@@ -32,9 +32,9 @@ using sync_pb::GetUpdatesCallerInfo;
namespace {
bool ShouldRequestEarlyExit(
- const browser_sync::SyncProtocolError& error) {
+ const browser_sync::SyncOperationResult& error) {
switch (error.error_type) {
- case browser_sync::SYNC_SUCCESS:
+ case browser_sync::OPERATION_SUCCESS:
case browser_sync::MIGRATION_DONE:
case browser_sync::THROTTLED:
case browser_sync::TRANSIENT_ERROR:
@@ -60,7 +60,7 @@ bool ShouldRequestEarlyExit(
}
bool IsActionableError(
- const browser_sync::SyncProtocolError& error) {
+ const browser_sync::SyncOperationResult& error) {
return (error.action != browser_sync::UNKNOWN_ACTION);
}
} // namespace
@@ -821,30 +821,15 @@ void SyncScheduler::FinishSyncSessionJob(const SyncSessionJob& job) {
void SyncScheduler::ScheduleNextSync(const SyncSessionJob& old_job) {
DCHECK_EQ(MessageLoop::current(), sync_loop_);
DCHECK(!old_job.session->HasMoreToSync());
- // Note: |num_server_changes_remaining| > 0 here implies that we received a
- // broken response while trying to download all updates, because the Syncer
- // will loop until this value is exhausted. Also, if unsynced_handles exist
- // but HasMoreToSync is false, this implies that the Syncer determined no
- // forward progress was possible at this time (an error, such as an HTTP
- // 500, is likely to have occurred during commit).
- int num_server_changes_remaining =
- old_job.session->status_controller()->num_server_changes_remaining();
- size_t num_unsynced_handles =
- old_job.session->status_controller()->unsynced_handles().size();
- const bool work_to_do =
- num_server_changes_remaining > 0 || num_unsynced_handles > 0;
- SVLOG(2) << "num server changes remaining: " << num_server_changes_remaining
- << ", num unsynced handles: " << num_unsynced_handles
- << ", syncer has work to do: " << work_to_do;
AdjustPolling(&old_job);
// TODO(tim): Old impl had special code if notifications disabled. Needed?
- if (!work_to_do) {
+ if (!old_job.session->ExperiencedTransientError()) {
// Success implies backoff relief. Note that if this was a
// "one-off" job (i.e. purpose ==
// SyncSessionJob::{CLEAR_USER_DATA,CLEANUP_DISABLED_TYPES}), if
- // there was work_to_do before it ran this wont have changed, as
+ // there was work to do before it ran this wont have changed, as
// jobs like this don't run a full sync cycle. So we don't need
// special code here.
wait_interval_.reset();
« no previous file with comments | « chrome/browser/sync/engine/post_commit_message_command.cc ('k') | chrome/browser/sync/engine/syncer_proto_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698