OpenHarmony开发者论坛
标题:
AccessTokenManagerClient::DeleteRemoteDeviceTokens的crash
[打印本页]
作者:
pidan_2023
时间:
2024-3-1 16:21
标题:
AccessTokenManagerClient::DeleteRemoteDeviceTokens的crash
【问题描述】
问题现象和发生的背景
几台设备联网后,手工下电一台设备,另一台设备上出现
AccessTokenManagerClient:
eleteRemoteDeviceTokens的crash
相关的代码,截图,日志信息
添加日志,多次尝试复现,发现如下规律
int
AccessTokenManagerClient:
eleteRemoteDeviceTokens(
const
std::string& deviceID)
{
auto
proxy = GetProxy(); //
这个时候get proxy是正常的。
if
(proxy ==
nullptr
) {
ACCESSTOKEN_LOG_ERROR(LABEL,
"proxy is null"
);
return
AccessTokenError::ERR_SERVICE_ABNORMAL;
}
-------
中间发现有token服务被销毁的日志
-----
TokenSyncManagerService::~TokenSyncManagerService()
{
ACCESSTOKEN_LOG_INFO(LABEL,
"~TokenSyncManagerService()"
);
}
-------
这中间应该是有线程的切换
------
int
res = proxy->DeleteRemoteDeviceTokens(deviceID); //
出crash在这个地方
return
res;
}
我理解
token服务被销毁了,之前的proxy就成了野指针,调用
proxy
->
DeleteRemoteDeviceTokens就crash了。
请问有什么修改的方法?确保
AccessTokenManagerClient
::
DeleteRemoteDeviceTokens这个函数在执行时不被切换掉。
【运行环境】
硬件:rk3568
ROM版本:OH_4.0
DevEvoStudio版本:
SDK版本:
作者:
sunwenbin
时间:
2024-3-7 15:05
请问一下,你这个是参考哪里的资料想要实现什么能力呢?我怎么没有找到。
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5