From 818a08353c36ea898092ce07cbaa39660c422780 Mon Sep 17 00:00:00 2001 From: tangfan <1824525929@qq.com> Date: Mon, 28 Mar 2022 18:57:42 +0800 Subject: [PATCH 1/4] add rpc retry Signed-off-by: tangfan <1824525929@qq.com> --- .../componentmanager/component_manager.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp b/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp index 6df99ba6..0534083e 100644 --- a/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp +++ b/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp @@ -43,6 +43,7 @@ IMPLEMENT_SINGLE_INSTANCE(ComponentManager); namespace { constexpr int32_t ENABLE_RETRY_MAX_TIMES = 30; constexpr int32_t DISABLE_RETRY_MAX_TIMES = 30; + constexpr int32_t ENABLE_PARAM_RETRY_TIME = 500 * 1000; } ComponentManager::~ComponentManager() @@ -221,12 +222,24 @@ int32_t ComponentManager::Enable(const std::string &networkId, const std::string if (ret != DH_FWK_SUCCESS) { DHLOGE("GetEnableParam failed, uuid = %s, dhId = %s, errCode = %d", GetAnonyString(uuid).c_str(), dhId.c_str(), ret); - return ret; + for (int32_t retryCount = 0; retryCount < ENABLE_RETRY_MAX_TIMES; retryCount++) { + if (!DHContext::GetInstance().IsDeviceOnline(uuid)) { + DHLOGW("device is already offline, no need try GetEnableParam, uuid = %s", + GetAnonyString(uuid).c_str()); + return ret; + } + if (GetEnableParam(networkId, uuid, dhId, dhType, param) == DH_FWK_SUCCESS) { + DHLOGI("GetEnableParam success, retryCount = %d", retryCount); + break; + } + DHLOGE("GetEnableParam failed, retryCount = %d", retryCount); + usleep(ENABLE_PARAM_RETRY_TIME); + } } auto compEnable = std::make_shared(); auto result = compEnable->Enable(networkId, dhId, param, find->second); if (result != DH_FWK_SUCCESS) { - for (int retryCount = 0; retryCount < ENABLE_RETRY_MAX_TIMES; retryCount++) { + for (int32_t retryCount = 0; retryCount < ENABLE_RETRY_MAX_TIMES; retryCount++) { if (!DHContext::GetInstance().IsDeviceOnline(uuid)) { DHLOGW("device is already offline, no need try enable, uuid = %s", GetAnonyString(uuid).c_str()); return result; @@ -254,7 +267,7 @@ int32_t ComponentManager::Disable(const std::string &networkId, const std::strin auto compDisable = std::make_shared(); auto result = compDisable->Disable(networkId, dhId, find->second); if (result != DH_FWK_SUCCESS) { - for (int retryCount = 0; retryCount < DISABLE_RETRY_MAX_TIMES; retryCount++) { + for (int32_t retryCount = 0; retryCount < DISABLE_RETRY_MAX_TIMES; retryCount++) { if (DHContext::GetInstance().IsDeviceOnline(uuid)) { DHLOGW("device is already online, no need try disable, uuid = %s", GetAnonyString(uuid).c_str()); return result; -- Gitee From 710b4a9f9939c686a48f2c90699bac18f0ec33eb Mon Sep 17 00:00:00 2001 From: tangfan <1824525929@qq.com> Date: Mon, 28 Mar 2022 19:13:12 +0800 Subject: [PATCH 2/4] fix log level Signed-off-by: tangfan <1824525929@qq.com> --- .../src/componentmanager/component_manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp b/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp index 0534083e..90990929 100644 --- a/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp +++ b/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp @@ -269,11 +269,11 @@ int32_t ComponentManager::Disable(const std::string &networkId, const std::strin if (result != DH_FWK_SUCCESS) { for (int32_t retryCount = 0; retryCount < DISABLE_RETRY_MAX_TIMES; retryCount++) { if (DHContext::GetInstance().IsDeviceOnline(uuid)) { - DHLOGW("device is already online, no need try disable, uuid = %s", GetAnonyString(uuid).c_str()); + DHLOGE("device is already online, no need try disable, uuid = %s", GetAnonyString(uuid).c_str()); return result; } if (compDisable->Disable(networkId, dhId, find->second) == DH_FWK_SUCCESS) { - DHLOGI("disable success, retryCount = %d", retryCount); + DHLOGE("disable success, retryCount = %d", retryCount); return DH_FWK_SUCCESS; } DHLOGE("disable failed, retryCount = %d", retryCount); -- Gitee From 680eef34571e31b494bad859ad2c01147eca5dfc Mon Sep 17 00:00:00 2001 From: tangfan <1824525929@qq.com> Date: Mon, 28 Mar 2022 19:24:19 +0800 Subject: [PATCH 3/4] fix enable log Signed-off-by: tangfan <1824525929@qq.com> --- .../src/componentmanager/component_manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp b/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp index 90990929..a78bec63 100644 --- a/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp +++ b/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp @@ -241,11 +241,11 @@ int32_t ComponentManager::Enable(const std::string &networkId, const std::string if (result != DH_FWK_SUCCESS) { for (int32_t retryCount = 0; retryCount < ENABLE_RETRY_MAX_TIMES; retryCount++) { if (!DHContext::GetInstance().IsDeviceOnline(uuid)) { - DHLOGW("device is already offline, no need try enable, uuid = %s", GetAnonyString(uuid).c_str()); + DHLOGE("device is already offline, no need try enable, uuid = %s", GetAnonyString(uuid).c_str()); return result; } if (compEnable->Enable(networkId, dhId, param, find->second) == DH_FWK_SUCCESS) { - DHLOGI("enable success, retryCount = %d", retryCount); + DHLOGE("enable success, retryCount = %d", retryCount); return DH_FWK_SUCCESS; } DHLOGE("enable failed, retryCount = %d", retryCount); -- Gitee From 5894b6e9d444c9fbc7dc6393d61495376312c5f1 Mon Sep 17 00:00:00 2001 From: tangfan <1824525929@qq.com> Date: Mon, 28 Mar 2022 19:34:44 +0800 Subject: [PATCH 4/4] fix retry log level Signed-off-by: tangfan <1824525929@qq.com> --- .../src/componentmanager/component_manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp b/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp index a78bec63..c9956a69 100644 --- a/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp +++ b/services/distributedhardwarefwkserviceimpl/src/componentmanager/component_manager.cpp @@ -224,12 +224,12 @@ int32_t ComponentManager::Enable(const std::string &networkId, const std::string dhId.c_str(), ret); for (int32_t retryCount = 0; retryCount < ENABLE_RETRY_MAX_TIMES; retryCount++) { if (!DHContext::GetInstance().IsDeviceOnline(uuid)) { - DHLOGW("device is already offline, no need try GetEnableParam, uuid = %s", + DHLOGE("device is already offline, no need try GetEnableParam, uuid = %s", GetAnonyString(uuid).c_str()); return ret; } if (GetEnableParam(networkId, uuid, dhId, dhType, param) == DH_FWK_SUCCESS) { - DHLOGI("GetEnableParam success, retryCount = %d", retryCount); + DHLOGE("GetEnableParam success, retryCount = %d", retryCount); break; } DHLOGE("GetEnableParam failed, retryCount = %d", retryCount); -- Gitee