• Lv0
    粉丝0

积分4 / 贡献0

提问8答案被采纳0文章0

AccessTokenManagerClient::DeleteRemoteDeviceTokens的crash

pidan_2023 显示全部楼层 发表于 2024-3-1 16:21:46
【问题描述】
问题现象和发生的背景
几台设备联网后,手工下电一台设备,另一台设备上出现
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版本:
您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论1

sunwenbin

沙发 发表于 2024-3-7 15:05:56
请问一下,你这个是参考哪里的资料想要实现什么能力呢?我怎么没有找到。

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部