From 55aaf6ed2b11d59da3c03536c2dcf91b72caa4c6 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 11 Mar 2022 11:30:59 +0800 Subject: [PATCH 1/4] add user Signed-off-by: unknown --- .../task_dispatcher/src/threading/task_executor.cpp | 10 +++++----- frameworks/kits/ability/native/src/ability_thread.cpp | 11 +++++------ services/abilitymgr/src/ability_manager_service.cpp | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/common/task_dispatcher/src/threading/task_executor.cpp b/common/task_dispatcher/src/threading/task_executor.cpp index 408615696e5..ec1b01a787c 100644 --- a/common/task_dispatcher/src/threading/task_executor.cpp +++ b/common/task_dispatcher/src/threading/task_executor.cpp @@ -71,11 +71,11 @@ ErrCode TaskExecutor::DoWorks(const std::shared_ptr &worker) while (((task != nullptr && done == false) || ((task = GetTask(worker)) != nullptr))) { HILOG_INFO("TaskExecutor::DoWorks loop tasks."); - BeforeRun(task); - - task->Run(); - - AfterRun(task); + if (task) { + BeforeRun(task); + task->Run(); + AfterRun(task); + } worker->IncTaskCount(); IncrementAndGet(taskCounter_); diff --git a/frameworks/kits/ability/native/src/ability_thread.cpp b/frameworks/kits/ability/native/src/ability_thread.cpp index 1002ee6a87a..fec6dff9503 100644 --- a/frameworks/kits/ability/native/src/ability_thread.cpp +++ b/frameworks/kits/ability/native/src/ability_thread.cpp @@ -1600,6 +1600,10 @@ std::shared_ptr AbilityThread::BuildAbilityConte void AbilityThread::DumpAbilityInfo(const std::vector ¶ms, std::vector &info) { HILOG_INFO("%{public}s begin.", __func__); + if (!currentAbility_) { + HILOG_ERROR("currentAbility is nullptr."); + return; + } if (!params.empty()) { if (abilityImpl_->IsStageBasedModel()) { auto scene = currentAbility_->GetScene(); @@ -1636,11 +1640,6 @@ void AbilityThread::DumpAbilityInfo(const std::vector ¶ms, std: runner->DumpRunnerInfo(dumpInfo); info.push_back(dumpInfo); - if (!currentAbility_) { - HILOG_INFO("currentAbility is nullptr."); - return; - } - const auto ablityContext = currentAbility_->GetAbilityContext(); if (!ablityContext) { HILOG_INFO("current ability context is nullptr."); @@ -1664,7 +1663,7 @@ sptr AbilityThread::CallRequest() HILOG_INFO("AbilityThread::CallRequest begin"); if (!currentAbility_) { - HILOG_INFO("ability is nullptr."); + HILOG_ERROR("ability is nullptr."); return nullptr; } diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index a7f46b7f0cf..4ba2074cd83 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -3259,8 +3259,8 @@ void AbilityManagerService::RestartAbility(const sptr &token) } auto abilityRecord = Token::GetAbilityRecordByToken(token); - auto userId = abilityRecord->GetApplicationInfo().uid / BASE_USER_RANGE; CHECK_POINTER(abilityRecord); + auto userId = abilityRecord->GetApplicationInfo().uid / BASE_USER_RANGE; auto stackManager = GetStackManagerByUserId(userId); if (!stackManager) { -- Gitee From 08c967bb188384b675f02c7c46f0af73a555aace Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 11 Mar 2022 12:11:17 +0800 Subject: [PATCH 2/4] add user Signed-off-by: unknown --- services/abilitymgr/src/ability_manager_service.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 4ba2074cd83..91779d487ce 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -3309,7 +3309,8 @@ void AbilityManagerService::StartingSystemUiAbility() uint32_t waitCnt = 0; // Wait 10 minutes for the installation to complete. IN_PROCESS_CALL_WITHOUT_RET( - while (!bms->QueryAbilityInfo(systemUiWant, systemUiInfo) && waitCnt < MAX_WAIT_SYSTEM_UI_NUM) { + while (!bms->QueryAbilityInfo(systemUiWant, AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_WITH_APPLICATION, + U0_USER_ID, systemUiInfo) && waitCnt < MAX_WAIT_SYSTEM_UI_NUM) { HILOG_INFO("Waiting query system ui info completed."); usleep(REPOLL_TIME_MICRO_SECONDS); waitCnt++; -- Gitee From 51df7ddb891b99cab1ac79a7568a27c5b231b1ac Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 11 Mar 2022 13:21:11 +0800 Subject: [PATCH 3/4] add user Signed-off-by: unknown --- services/abilitymgr/src/ability_manager_service.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 91779d487ce..1359cc54a58 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -2579,10 +2579,19 @@ int AbilityManagerService::GenerateAbilityRequest( AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_WITH_METADATA); HILOG_DEBUG("%{public}s, QueryAbilityInfo, userId is %{public}d", __func__, userId); IN_PROCESS_CALL_WITHOUT_RET(bms->QueryAbilityInfo(want, abilityInfoFlag, userId, request.abilityInfo)); + if (request.abilityInfo.name.empty() || request.abilityInfo.bundleName.empty()) { + HILOG_WARN("%{public}s, QueryAbilityInfo again, userId is %{public}d", __func__, userId); + IN_PROCESS_CALL_WITHOUT_RET(bms->QueryAbilityInfo(want, abilityInfoFlag, U0_USER_ID, request.abilityInfo)); + } if (request.abilityInfo.name.empty() || request.abilityInfo.bundleName.empty()) { // try to find extension std::vector extensionInfos; IN_PROCESS_CALL_WITHOUT_RET(bms->QueryExtensionAbilityInfos(want, abilityInfoFlag, userId, extensionInfos)); + if (extensionInfos.size() <= 0) { + HILOG_WARN("%{public}s, QueryExtensionAbilityInfos again, userId is %{public}d", __func__, userId); + IN_PROCESS_CALL_WITHOUT_RET(bms->QueryExtensionAbilityInfos(want, abilityInfoFlag, + U0_USER_ID, extensionInfos)); + } if (extensionInfos.size() <= 0) { HILOG_ERROR("Get extension info failed."); return RESOLVE_ABILITY_ERR; @@ -3309,8 +3318,7 @@ void AbilityManagerService::StartingSystemUiAbility() uint32_t waitCnt = 0; // Wait 10 minutes for the installation to complete. IN_PROCESS_CALL_WITHOUT_RET( - while (!bms->QueryAbilityInfo(systemUiWant, AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_WITH_APPLICATION, - U0_USER_ID, systemUiInfo) && waitCnt < MAX_WAIT_SYSTEM_UI_NUM) { + while (!bms->QueryAbilityInfo(systemUiWant, systemUiInfo) && waitCnt < MAX_WAIT_SYSTEM_UI_NUM) { HILOG_INFO("Waiting query system ui info completed."); usleep(REPOLL_TIME_MICRO_SECONDS); waitCnt++; -- Gitee From 17bb39416592d4b1cae01fd2222f28aa48604534 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 11 Mar 2022 13:24:03 +0800 Subject: [PATCH 4/4] add user Signed-off-by: unknown --- services/abilitymgr/src/ability_manager_service.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 1359cc54a58..7f91a4a9cb4 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -2580,7 +2580,7 @@ int AbilityManagerService::GenerateAbilityRequest( HILOG_DEBUG("%{public}s, QueryAbilityInfo, userId is %{public}d", __func__, userId); IN_PROCESS_CALL_WITHOUT_RET(bms->QueryAbilityInfo(want, abilityInfoFlag, userId, request.abilityInfo)); if (request.abilityInfo.name.empty() || request.abilityInfo.bundleName.empty()) { - HILOG_WARN("%{public}s, QueryAbilityInfo again, userId is %{public}d", __func__, userId); + HILOG_WARN("%{public}s, QueryAbilityInfo again, userId is 0", __func__); IN_PROCESS_CALL_WITHOUT_RET(bms->QueryAbilityInfo(want, abilityInfoFlag, U0_USER_ID, request.abilityInfo)); } if (request.abilityInfo.name.empty() || request.abilityInfo.bundleName.empty()) { @@ -2588,7 +2588,7 @@ int AbilityManagerService::GenerateAbilityRequest( std::vector extensionInfos; IN_PROCESS_CALL_WITHOUT_RET(bms->QueryExtensionAbilityInfos(want, abilityInfoFlag, userId, extensionInfos)); if (extensionInfos.size() <= 0) { - HILOG_WARN("%{public}s, QueryExtensionAbilityInfos again, userId is %{public}d", __func__, userId); + HILOG_WARN("%{public}s, QueryExtensionAbilityInfos again, userId is 0", __func__); IN_PROCESS_CALL_WITHOUT_RET(bms->QueryExtensionAbilityInfos(want, abilityInfoFlag, U0_USER_ID, extensionInfos)); } -- Gitee