From 3a1cdf0f08680e407b30832efb39c782e97dd308 Mon Sep 17 00:00:00 2001 From: bigtea Date: Tue, 8 Jul 2025 17:36:30 +0800 Subject: [PATCH] Add access_token database dfx info Signed-off-by: bigtea --- .../main/cpp/src/database/access_token_db.cpp | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/services/accesstokenmanager/main/cpp/src/database/access_token_db.cpp b/services/accesstokenmanager/main/cpp/src/database/access_token_db.cpp index b7c17073d..b665c8f84 100644 --- a/services/accesstokenmanager/main/cpp/src/database/access_token_db.cpp +++ b/services/accesstokenmanager/main/cpp/src/database/access_token_db.cpp @@ -65,14 +65,16 @@ int32_t AccessTokenDb::RestoreAndInsertIfCorrupt(const int32_t resultCode, int64 LOGW(ATM_DOMAIN, ATM_TAG, "Detech database corrupt, restore from backup!"); int32_t res = db->Restore(""); if (res != NativeRdb::E_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Db restore failed, res is %{public}d.", res); + ClearThreadErrorMsg(); + LOGC(ATM_DOMAIN, ATM_TAG, "Db restore failed, res is %{public}d.", res); return res; } LOGI(ATM_DOMAIN, ATM_TAG, "Database restore success, try insert again!"); res = db->BatchInsert(outInsertNum, tableName, buckets); if (res != NativeRdb::E_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to batch insert into table %{public}s again, res is %{public}d.", + ClearThreadErrorMsg(); + LOGC(ATM_DOMAIN, ATM_TAG, "Failed to batch insert into table %{public}s again, res is %{public}d.", tableName.c_str(), res); return res; } @@ -123,7 +125,7 @@ int32_t AccessTokenDb::AddValues(const AtmDataType type, const std::vector db = GetRdb(); if (db == nullptr) { - LOGE(ATM_DOMAIN, ATM_TAG, "db is nullptr."); + LOGC(ATM_DOMAIN, ATM_TAG, "db is nullptr."); return AccessTokenError::ERR_DATABASE_OPERATE_FAILED; } @@ -134,7 +136,7 @@ int32_t AccessTokenDb::AddValues(const AtmDataType type, const std::vectorBatchInsert(outInsertNum, tableName, buckets); if (res != NativeRdb::E_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to batch insert into table %{public}s, res is %{public}d.", + LOGC(ATM_DOMAIN, ATM_TAG, "Failed to batch insert into table %{public}s, res is %{public}d, start restore.", tableName.c_str(), res); int32_t result = RestoreAndInsertIfCorrupt(res, outInsertNum, tableName, buckets, db); if (result != NativeRdb::E_OK) { @@ -142,7 +144,7 @@ int32_t AccessTokenDb::AddValues(const AtmDataType type, const std::vectorRestore(""); if (res != NativeRdb::E_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Db restore failed, res is %{public}d.", res); + ClearThreadErrorMsg(); + LOGC(ATM_DOMAIN, ATM_TAG, "Db restore failed, res is %{public}d.", res); return res; } LOGI(ATM_DOMAIN, ATM_TAG, "Database restore success, try delete again!"); res = db->Delete(deletedRows, predicates); if (res != NativeRdb::E_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to delete record from table %{public}s again, res is %{public}d.", + ClearThreadErrorMsg(); + LOGC(ATM_DOMAIN, ATM_TAG, "Failed to delete record from table %{public}s again, res is %{public}d.", predicates.GetTableName().c_str(), res); return res; } @@ -188,7 +192,7 @@ int32_t AccessTokenDb::RemoveValues(const AtmDataType type, const GenericValues& std::shared_ptr db = GetRdb(); if (db == nullptr) { - LOGE(ATM_DOMAIN, ATM_TAG, "db is nullptr."); + LOGC(ATM_DOMAIN, ATM_TAG, "db is nullptr."); return AccessTokenError::ERR_DATABASE_OPERATE_FAILED; } @@ -198,7 +202,7 @@ int32_t AccessTokenDb::RemoveValues(const AtmDataType type, const GenericValues& int32_t res = db->Delete(deletedRows, predicates); if (res != NativeRdb::E_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to delete record from table %{public}s, res is %{public}d.", + LOGC(ATM_DOMAIN, ATM_TAG, "Failed to delete record from table %{public}s, res is %{public}d, start restore.", tableName.c_str(), res); int32_t result = RestoreAndDeleteIfCorrupt(res, deletedRows, predicates, db); if (result != NativeRdb::E_OK) { @@ -222,14 +226,16 @@ int32_t AccessTokenDb::RestoreAndUpdateIfCorrupt(const int32_t resultCode, int32 LOGW(ATM_DOMAIN, ATM_TAG, "Detech database corrupt, restore from backup!"); int32_t res = db->Restore(""); if (res != NativeRdb::E_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Db restore failed, res is %{public}d.", res); + ClearThreadErrorMsg(); + LOGC(ATM_DOMAIN, ATM_TAG, "Db restore failed, res is %{public}d.", res); return res; } LOGI(ATM_DOMAIN, ATM_TAG, "Database restore success, try update again!"); res = db->Update(changedRows, bucket, predicates); if (res != NativeRdb::E_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to update record from table %{public}s again, res is %{public}d.", + ClearThreadErrorMsg(); + LOGC(ATM_DOMAIN, ATM_TAG, "Failed to update record from table %{public}s again, res is %{public}d.", predicates.GetTableName().c_str(), res); return res; } @@ -244,7 +250,7 @@ int32_t AccessTokenDb::Modify(const AtmDataType type, const GenericValues& modif std::string tableName; AccessTokenDbUtil::GetTableNameByType(type, tableName); if (tableName.empty()) { - LOGC(ATM_DOMAIN, ATM_TAG, "Get table name failed, type=%{public}d!", static_cast(type)); + LOGE(ATM_DOMAIN, ATM_TAG, "Get table name failed, type=%{public}d!", static_cast(type)); return AccessTokenError::ERR_PARAM_INVALID; } @@ -270,8 +276,8 @@ int32_t AccessTokenDb::Modify(const AtmDataType type, const GenericValues& modif int32_t res = db->Update(changedRows, bucket, predicates); if (res != NativeRdb::E_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to update record from table %{public}s, res is %{public}d.", - tableName.c_str(), res); + LOGC(ATM_DOMAIN, ATM_TAG, "Failed to update record from table %{public}s, res is %{public}d," + " start restore.", tableName.c_str(), res); int32_t result = RestoreAndUpdateIfCorrupt(res, changedRows, bucket, predicates, db); if (result != NativeRdb::E_OK) { LOGC(ATM_DOMAIN, ATM_TAG, "Failed to restore and update, result is %{public}d.", result); @@ -298,9 +304,10 @@ int32_t AccessTokenDb::RestoreAndQueryIfCorrupt(const NativeRdb::RdbPredicates& queryResultSet->Close(); queryResultSet = nullptr; - LOGW(ATM_DOMAIN, ATM_TAG, "Detech database corrupt, restore from backup!"); + LOGC(ATM_DOMAIN, ATM_TAG, "Detech database corrupt, restore from backup!"); res = db->Restore(""); if (res != NativeRdb::E_OK) { + ClearThreadErrorMsg(); LOGC(ATM_DOMAIN, ATM_TAG, "Db restore failed, res is %{public}d.", res); return res; } @@ -308,6 +315,7 @@ int32_t AccessTokenDb::RestoreAndQueryIfCorrupt(const NativeRdb::RdbPredicates& queryResultSet = db->Query(predicates, columns); if (queryResultSet == nullptr) { + ClearThreadErrorMsg(); LOGC(ATM_DOMAIN, ATM_TAG, "Failed to find records from table %{public}s again.", predicates.GetTableName().c_str()); return AccessTokenError::ERR_DATABASE_OPERATE_FAILED; @@ -386,6 +394,7 @@ int32_t AccessTokenDb::RestoreAndCommitIfCorrupt(const int32_t resultCode, LOGW(ATM_DOMAIN, ATM_TAG, "Detech database corrupt, restore from backup!"); int32_t res = db->Restore(""); if (res != NativeRdb::E_OK) { + ClearThreadErrorMsg(); LOGC(ATM_DOMAIN, ATM_TAG, "Db restore failed, res is %{public}d.", res); return res; } @@ -393,6 +402,7 @@ int32_t AccessTokenDb::RestoreAndCommitIfCorrupt(const int32_t resultCode, res = db->Commit(); if (res != NativeRdb::E_OK) { + ClearThreadErrorMsg(); LOGC(ATM_DOMAIN, ATM_TAG, "Failed to Commit again, res is %{public}d.", res); return res; } @@ -439,7 +449,7 @@ int32_t AccessTokenDb::DeleteAndInsertValues( res = db->Commit(); if (res != NativeRdb::E_OK) { - LOGE(ATM_DOMAIN, ATM_TAG, "Failed to commit, res is %{public}d.", res); + LOGC(ATM_DOMAIN, ATM_TAG, "Failed to commit, res is %{public}d, start restore.", res); int32_t result = RestoreAndCommitIfCorrupt(res, db); if (result != NativeRdb::E_OK) { LOGC(ATM_DOMAIN, ATM_TAG, "Failed to restore and commit, result is %{public}d.", result); -- Gitee