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

Unified Diff: chrome/browser/sync_file_system/drive_backend/metadata_database.cc

Issue 527163002: [SyncFS] Retry initialization of MetadataDatabase on failure of loading ServiceMetadata (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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_file_system/drive_backend/metadata_database.cc
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
index 5456f52593ce52a28506f67bb25842de016b11d9..80499480f47f966c23d8f2d3700adb12dcd515a8 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
@@ -1428,7 +1428,8 @@ void MetadataDatabase::CreateOnWorkerTaskRunner(
if (status != SYNC_STATUS_OK)
metadata_database.reset();
- metadata_database->DetachFromSequence();
+ if (metadata_database)
+ metadata_database->DetachFromSequence();
create_param->worker_task_runner->PostTask(
FROM_HERE,
base::Bind(
@@ -1460,6 +1461,15 @@ SyncStatusCode MetadataDatabase::Initialize() {
} else {
index_ = MetadataDatabaseIndex::Create(db_.get());
}
+ if (!index_) {
+ // Delete all entries in |db_| to reset it.
+ scoped_ptr<LevelDBWrapper::Iterator> itr = db_->NewIterator();
+ for (itr->SeekToFirst(); itr->Valid();)
+ itr->Delete();
nhiroki 2014/09/02 08:36:25 Although not related to this CL and you don't have
peria 2014/09/03 04:08:13 Acknowledged.
+ db_->Commit();
nhiroki 2014/09/02 07:26:04 If you want to delete all records, can you use lev
peria 2014/09/02 07:36:27 We have to update LevelDBWrapper class to use it :
nhiroki 2014/09/02 08:36:25 Okay, can we have a TODO comment about that?
peria 2014/09/03 04:08:13 Done.
+
+ return SYNC_DATABASE_ERROR_FAILED;
nhiroki 2014/09/02 07:26:04 Let me confirm... this makes the SyncFS disabled u
peria 2014/09/02 07:36:27 Yes, it is. We have to run SyncEngineInitializer a
nhiroki 2014/09/02 08:36:25 I see... there would be another option to retry th
peria 2014/09/03 04:08:13 Acknowledged.
+ }
status = LevelDBStatusToSyncStatusCode(db_->Commit());
if (status != SYNC_STATUS_OK)

Powered by Google App Engine
This is Rietveld 408576698