diff --git a/services/distributeddataservice/framework/include/dfx/dfx_types.h b/services/distributeddataservice/framework/include/dfx/dfx_types.h index bb1a0e91d8307aca630b684b3b4ab65c9f0d6955..a83fd25292be9d924a942eaec6c381a5a6058594 100644 --- a/services/distributeddataservice/framework/include/dfx/dfx_types.h +++ b/services/distributeddataservice/framework/include/dfx/dfx_types.h @@ -88,6 +88,7 @@ enum class Fault { CSF_DOWNLOAD_ASSETS = 82, CSF_GS_CREATE_DISTRIBUTED_TABLE = 83, CSF_GS_CLOUD_SYNC = 84, + CSF_GS_CLOUD_CLEAN = 85, }; enum class FaultType { diff --git a/services/distributeddataservice/service/cloud/cloud_service_impl.cpp b/services/distributeddataservice/service/cloud/cloud_service_impl.cpp index 75c4ae3266a401445ff582be5ccb7cb7554a59f1..fce1de0bab6c83693fb2b0aeb50aa28ca77e0da4 100644 --- a/services/distributeddataservice/service/cloud/cloud_service_impl.cpp +++ b/services/distributeddataservice/service/cloud/cloud_service_impl.cpp @@ -68,6 +68,7 @@ static constexpr const char *FT_ENABLE_CLOUD = "ENABLE_CLOUD"; static constexpr const char *FT_DISABLE_CLOUD = "DISABLE_CLOUD"; static constexpr const char *FT_SWITCH_ON = "SWITCH_ON"; static constexpr const char *FT_SWITCH_OFF = "SWITCH_OFF"; +static constexpr const char *FT_CLOUD_CLEAN = "CLOUD_CLEAN"; static constexpr const char *FT_QUERY_INFO = "QUERY_SYNC_INFO"; static constexpr const char *FT_USER_CHANGE = "USER_CHANGE"; static constexpr const char *FT_USER_UNLOCK = "USER_UNLOCK"; @@ -249,6 +250,7 @@ int32_t CloudServiceImpl::DoClean(const CloudInfo &cloudInfo, const std::map(user), meta.bundleName.c_str(), meta.GetStoreAlias().c_str()); + Report(FT_CLOUD_CLEAN, Fault::CSF_GS_CLOUD_CLEAN, meta.bundleName, "Clean:" + std::to_string(status) + + ", storeId=" + meta.GetStoreAlias() + ", action=" + std::to_string(action)); } else { ZLOGD("clean success, user:%{public}d, bundleName:%{public}s, storeId:%{public}s", static_cast(user), meta.bundleName.c_str(), meta.GetStoreAlias().c_str()); @@ -325,16 +329,21 @@ int32_t CloudServiceImpl::Clean(const std::string &id, const std::map(cloudInfo.user)); + Report(FT_CLOUD_CLEAN, Fault::CSF_GS_CLOUD_CLEAN, "", + "get cloud info from meta failed=" + std::to_string(status)); return ERROR; } if (id != cloudInfo.id) { ZLOGE("different id, [server] id:%{public}s, [meta] id:%{public}s", Anonymous::Change(cloudInfo.id).c_str(), Anonymous::Change(id).c_str()); + Report(FT_CLOUD_CLEAN, Fault::CSF_GS_CLOUD_CLEAN, "", + "different id, new:" + Anonymous::Change(id) + ", old:" + Anonymous::Change(cloudInfo.id)); return ERROR; } auto dbActions = ConvertAction(actions); if (dbActions.empty()) { ZLOGE("invalid actions. id:%{public}s", Anonymous::Change(cloudInfo.id).c_str()); + Report(FT_CLOUD_CLEAN, Fault::CSF_GS_CLOUD_CLEAN, "", "convert action failed"); return ERROR; } return DoClean(cloudInfo, dbActions); @@ -881,6 +890,8 @@ bool CloudServiceImpl::UpdateCloudInfo(int32_t user, CloudSyncScene scene) actions[bundle] = GeneralStore::CleanMode::CLOUD_INFO; } DoClean(oldInfo, actions); + Report(GetDfxFaultType(scene), Fault::CSF_CLOUD_INFO, "", + "Clean: different id, new:" + Anonymous::Change(cloudInfo.id) + ", old:" + Anonymous::Change(oldInfo.id)); } return true; } diff --git a/services/distributeddataservice/service/rdb/rdb_general_store.cpp b/services/distributeddataservice/service/rdb/rdb_general_store.cpp index 9455db59a84c8301295cc4a669a135481a548c24..24add26cec9399295857203519d74bc139466eb4 100644 --- a/services/distributeddataservice/service/rdb/rdb_general_store.cpp +++ b/services/distributeddataservice/service/rdb/rdb_general_store.cpp @@ -943,13 +943,16 @@ int32_t RdbGeneralStore::SetDistributedTables(const std::vector &ta ZLOGE("create distributed table failed, table:%{public}s, err:%{public}d", Anonymous::Change(table).c_str(), dBStatus); Report(FT_OPEN_STORE, static_cast(Fault::CSF_GS_CREATE_DISTRIBUTED_TABLE), - "SetDistributedTables ret=" + std::to_string(static_cast(dBStatus))); + "SetDistributedTables: set table(" + Anonymous::Change(table) + ") reference=" + + std::to_string(static_cast(dBStatus))); return GeneralError::E_ERROR; } } if (type == DistributedTableType::DISTRIBUTED_CLOUD) { auto status = SetReference(references); if (status != GeneralError::E_OK) { + Report(FT_OPEN_STORE, static_cast(Fault::CSF_GS_CREATE_DISTRIBUTED_TABLE), + "SetDistributedTables: set reference=" + std::to_string(static_cast(status))); return GeneralError::E_ERROR; } }