[TOC]
Recorded in ProtoDatabaseSelector::InitUniqueOrShared
when starting, next step
is to initialize the unique database.
Recorded in ProtoDatabaseSelector::InitWithDatabase
, which is only used by
unit tests and perf tests, not a final state.
Recorded in ProtoDatabaseSelector::OnInitUniqueDB
when unique database is
corrupted, executing callback with kCorrupt
.
Recorded in ProtoDatabaseSelector::OnInitUniqueDB
when unique DB fails to open
and ProtoDatabaseImpl
is created without a shared DB provider, should only
happen in FakeDB and Perftests. executing callback with kError
.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when both unique and
shared databases fail to open, shared DB can fail to open because
SharedProtoDatabase::GetClientAsync
returns an error or when
SharedProtoDatabaseProvider
returns no SharedProtoDatabase
instance.
callback is executed with kError
.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when there’s no shared
DB client and a shared database is requested, callback is executed with
kError
.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when there’s no shared
DB client because it failed to open and a unique DB was requested, callback is
executed with kError
because the shared DB could contain unmigrated data.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when there’s no unique
DB because it failed to open, the callback is executed with kError
as the
unique DB could contain unmigrated data.
Recorded in ProtoDatabaseSelector::OnInitUniqueDB
when unique DB opens
successfully but ProtoDatabaseImpl
is created without a shared DB provider,
should only happen in FakeDB and Perftests. executing callback with kOK
.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when there’s no shared
DB client because it doesn’t exist in disk and a unique database was requested,
callback is executed with kOK
and the unique DB is used as this is expected to
happen before any migrations.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when there’s no unique
DB because it doesn’t exist and the shared DB metadata reports that no migration
has been attempted, we set the database as migrated to shared, execute the
callback with kOK
and use the shared DB.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
when the unique DB
fails to open but the metadata reports that data is now in the shared DB.
callback is executed with kOK
and the shared DB is used. This is expected to
happen after migrating and deleting the unique DB.
Recorded in ProtoDatabaseSelector::MaybeDoMigrationOnDeletingOld
when data
deletion fails before a migration, we’ll attempt to delete again next time,
callback is called with kOK
and the old data is used.
Recorded in ProtoDatabaseSelector::OnMigrationTransferComplete
when
MigrationDelegate::DoMigration
returns an error, callback is executed with
kOK
and the unique DB is used.
Recorded in ProtoDatabaseSelector::OnMigrationTransferComplete
when
MigrationDelegate::DoMigration
returns an error, callback is executed with
kOK
and the shared DB is used.
Recorded in ProtoDatabaseSelector::OnMigrationCleanupComplete
after a
successful migration but old data fails to be deleted, callback is executed with
kOK
and shared DB is used.
Recorded in ProtoDatabaseSelector::OnMigrationCleanupComplete
after a
successful migration but old data fails to be deleted, callback is executed with
kOK
and unique DB is used.
Recorded in ProtoDatabaseSelector::OnMigrationCleanupComplete
after a
successful migration and data deletion, callback is executed with kOK
and
shared DB is used.
Recorded in ProtoDatabaseSelector::OnMigrationCleanupComplete
after a
successful migration and data deletion, callback is executed with kOK
and
unique DB is used.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
and
ProtoDatabaseSelector::MaybeDoMigrationOnDeletingOld
, indicates that data will
be migrated from unique to shared, not a final state. Next step is calling
MigrationDelegate::DoMigration
.
Recorded in ProtoDatabaseSelector::OnGetSharedDBClient
and
ProtoDatabaseSelector::MaybeDoMigrationOnDeletingOld
, indicates that data will
be migrated from shared to unique, not a final state. Next step is calling
MigrationDelegate::DoMigration
.
Recorded in SharedProtoDatabase::OnGetClientMetadata
when the database for
SharedDBMetadataProto
fails to load metadata for the specified database,
expected for the first time, not a final state.
Recorded in SharedProtoDatabase::OnGetClientMetadata
when metadata is
retrieved for a client and it has no migration state, we write
MIGRATION_NOT_ATTEMPTED
back to the database and regardless of the DB’s result
we report that no migration has been attempted.
Recorded in SharedProtoDatabase::OnGetClientMetadata
when the shared database
experienced data corruption in an earlier initialization, shared DB callback is
executed with kCorrupt
.
Recorded in SharedProtoDatabase::OnGetClientMetadata
when the shared database
opened successfully without corruption, the shared DB callback is executed with
kOK
.
Recorded in SharedProtoDatabase::Init
and
SharedProtoDatabase::CheckCorruptionAndRunInitCallback
when the shared proto
DB failed to open, the shared DB callback is executed with kError
(or any
other non kOK
result)
Recorded in SharedProtoDatabase::Init
when the shared proto DB does not exist,
the shared DB callback is executed with kInvalidOperation
.