登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情
代码拉取完成,页面将自动刷新
仓库状态说明
开源项目
>
OpenHarmony
>
底层组件
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
142
Star
297
Fork
1.6K
OpenHarmony
/
communication_dsoftbus
关闭
代码
Issues
23
Pull Requests
41
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
标准系统SendMessage大概率失败
已完成
#I50D7N
缺陷
duxbbo
创建于
2022-03-30 15:04
**【模块名_概率】简要描述:** 软总线SendMessage接口大概率报超时 EsOnSessionOpened:enter SyncSend:send data failed!ret=-999 测试代码: ```c static int SyncSend(uint32_t seq, SessionType type, TestPackage *package) { int ret = 0; time_t sendTime = 0; SendMethod method = SendMessage; if (type == TYPE_MESSAGE) { method = SendMessage; } else if (type == TYPE_BYTES) { method = SendBytes; } else { LOG("%s:unsupported sessiontype %d", __func__, type); return -1; } ret = ExecWithRetry(g_sessionId, (void *)package, sizeof(TestPackage) + package->len, method, &sendTime); if (ret != 0) { LOG("%s:send data failed!ret=%d", __func__, ret); return ret; } else { LOG("%s:message sent.ret=%d", __func__, ret); } LOG("%s:waiting for seq %d", __func__, seq); if (!WaitResponse(seq)) { LOG("%s:wait response timeout!", __func__); return -1; } LOG("%s:Got seq %d", __func__, g_recvSeq); CalcRTT(seq, sendTime, g_responseTime); return 0; } ``` **【环境信息】:** - 网络环境 - 硬件开发板型号:3568开发板 - 软件版本信息或tag节点 - 测试环境 - 其他 **【预置条件】:** **【测试步骤】:** 两块3568组网,A向B 发送Message。 **【预期结果】:** 发送成功 **【实际结果】:** EsOnSessionOpened:enter SyncSend:send data failed!ret=-999 **【恢复手段】:** 无 **【出现概率】:问题出现次数/实际测试次数** 非常大概率出现 **【定位信息】:** 定位发现: ProcPendingPacket 中本应该等待2秒超时,但是从日志中可以观察到。基本是立即报超时退出的。原因就是SoftBusCondWait并未生效 定位发现标准系统使用adapter/common/kernel/liteos_a/这组适配 在SoftBusGetTime 中指定了时间是 CLOCK_MONOTONIC_RAW 但在SoftBusCondInit中却未指定时间类型。 定位结果: 因时间使用的不匹配,导致超时机制无法正常运作 - 1. Log、截图、多媒体文件等,所有和问题有关的信息: 发送端日志: ```shell 08-05 22:15:22.421 1459 1459 I 015c0/dsoftbus_standard: [TRAN]SendMessage: sessionId=1 08-05 22:15:22.421 1422 1422 I 015c0/dsoftbus_standard: [COMM]SoftBusServerStub::OnReceived, code = 136 08-05 22:15:22.421 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send msg: id=512, type=1 08-05 22:15:22.421 1422 1422 I 015c0/dsoftbus_standard: [TRAN]trans proxy send packet seq 0 flag 2 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]InLen[1000] seq[0] outLen[1044] flags[2] 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send syncmsg chanid[512] seq[0] dataLen[1044] type[2] 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]slice: i:0 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send buf connid 65561 len 1072 seq 2 pri 0 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]slice: i:1 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send buf connid 65561 len 68 seq 3 pri 0 08-05 22:15:22.422 1422 1422 E 015c0/dsoftbus_standard: [TRAN]wait finished seq=0,channel=512 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]proxy send sync msg fail.[-999] 08-05 22:15:22.422 1459 1459 I 015c0/dsoftbus_standard: [TRAN]send msg: channelId=512, ret=-999 08-05 22:15:22.422 1459 1459 I 015c0/dsoftbus_standard: [TRAN]SendMessage: sessionId=1 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [COMM]SoftBusServerStub::OnReceived, code = 136 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send msg: id=512, type=1 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]trans proxy send packet seq 1 flag 2 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]InLen[1000] seq[1] outLen[1044] flags[2] 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send syncmsg chanid[512] seq[1] dataLen[1044] type[2] 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]slice: i:0 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send buf connid 65561 len 1072 seq 4 pri 0 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]slice: i:1 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send buf connid 65561 len 68 seq 5 pri 0 08-05 22:15:22.423 1422 1422 E 015c0/dsoftbus_standard: [TRAN]wait finished seq=1,channel=512 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]proxy send sync msg fail.[-999] 08-05 22:15:22.424 1422 1449 I 015c0/dsoftbus_standard: [TRAN]data recv connid :65561, moduleId 13, seq : 2 len 72 08-05 22:15:22.424 1459 1459 I 015c0/dsoftbus_standard: [TRAN]send msg: channelId=512, ret=-999 08-05 22:15:22.424 1422 1449 I 015c0/dsoftbus_standard: [TRAN]no sub packets proc ```
**【模块名_概率】简要描述:** 软总线SendMessage接口大概率报超时 EsOnSessionOpened:enter SyncSend:send data failed!ret=-999 测试代码: ```c static int SyncSend(uint32_t seq, SessionType type, TestPackage *package) { int ret = 0; time_t sendTime = 0; SendMethod method = SendMessage; if (type == TYPE_MESSAGE) { method = SendMessage; } else if (type == TYPE_BYTES) { method = SendBytes; } else { LOG("%s:unsupported sessiontype %d", __func__, type); return -1; } ret = ExecWithRetry(g_sessionId, (void *)package, sizeof(TestPackage) + package->len, method, &sendTime); if (ret != 0) { LOG("%s:send data failed!ret=%d", __func__, ret); return ret; } else { LOG("%s:message sent.ret=%d", __func__, ret); } LOG("%s:waiting for seq %d", __func__, seq); if (!WaitResponse(seq)) { LOG("%s:wait response timeout!", __func__); return -1; } LOG("%s:Got seq %d", __func__, g_recvSeq); CalcRTT(seq, sendTime, g_responseTime); return 0; } ``` **【环境信息】:** - 网络环境 - 硬件开发板型号:3568开发板 - 软件版本信息或tag节点 - 测试环境 - 其他 **【预置条件】:** **【测试步骤】:** 两块3568组网,A向B 发送Message。 **【预期结果】:** 发送成功 **【实际结果】:** EsOnSessionOpened:enter SyncSend:send data failed!ret=-999 **【恢复手段】:** 无 **【出现概率】:问题出现次数/实际测试次数** 非常大概率出现 **【定位信息】:** 定位发现: ProcPendingPacket 中本应该等待2秒超时,但是从日志中可以观察到。基本是立即报超时退出的。原因就是SoftBusCondWait并未生效 定位发现标准系统使用adapter/common/kernel/liteos_a/这组适配 在SoftBusGetTime 中指定了时间是 CLOCK_MONOTONIC_RAW 但在SoftBusCondInit中却未指定时间类型。 定位结果: 因时间使用的不匹配,导致超时机制无法正常运作 - 1. Log、截图、多媒体文件等,所有和问题有关的信息: 发送端日志: ```shell 08-05 22:15:22.421 1459 1459 I 015c0/dsoftbus_standard: [TRAN]SendMessage: sessionId=1 08-05 22:15:22.421 1422 1422 I 015c0/dsoftbus_standard: [COMM]SoftBusServerStub::OnReceived, code = 136 08-05 22:15:22.421 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send msg: id=512, type=1 08-05 22:15:22.421 1422 1422 I 015c0/dsoftbus_standard: [TRAN]trans proxy send packet seq 0 flag 2 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]InLen[1000] seq[0] outLen[1044] flags[2] 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send syncmsg chanid[512] seq[0] dataLen[1044] type[2] 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]slice: i:0 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send buf connid 65561 len 1072 seq 2 pri 0 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]slice: i:1 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send buf connid 65561 len 68 seq 3 pri 0 08-05 22:15:22.422 1422 1422 E 015c0/dsoftbus_standard: [TRAN]wait finished seq=0,channel=512 08-05 22:15:22.422 1422 1422 I 015c0/dsoftbus_standard: [TRAN]proxy send sync msg fail.[-999] 08-05 22:15:22.422 1459 1459 I 015c0/dsoftbus_standard: [TRAN]send msg: channelId=512, ret=-999 08-05 22:15:22.422 1459 1459 I 015c0/dsoftbus_standard: [TRAN]SendMessage: sessionId=1 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [COMM]SoftBusServerStub::OnReceived, code = 136 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send msg: id=512, type=1 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]trans proxy send packet seq 1 flag 2 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]InLen[1000] seq[1] outLen[1044] flags[2] 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send syncmsg chanid[512] seq[1] dataLen[1044] type[2] 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]slice: i:0 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send buf connid 65561 len 1072 seq 4 pri 0 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]slice: i:1 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]send buf connid 65561 len 68 seq 5 pri 0 08-05 22:15:22.423 1422 1422 E 015c0/dsoftbus_standard: [TRAN]wait finished seq=1,channel=512 08-05 22:15:22.423 1422 1422 I 015c0/dsoftbus_standard: [TRAN]proxy send sync msg fail.[-999] 08-05 22:15:22.424 1422 1449 I 015c0/dsoftbus_standard: [TRAN]data recv connid :65561, moduleId 13, seq : 2 len 72 08-05 22:15:22.424 1459 1459 I 015c0/dsoftbus_standard: [TRAN]send msg: channelId=512, ret=-999 08-05 22:15:22.424 1422 1449 I 015c0/dsoftbus_standard: [TRAN]no sub packets proc ```
评论 (
1
)
登录
后才可以发表评论
状态
已完成
待办的
已确认
技术评审中
修复中
验收中
已完成
已取消
已拒绝
挂起
负责人
未设置
duxbbo
duxbbo
负责人
协作者
+负责人
+协作者
标签
未设置
项目
未立项任务
未立项任务
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(1)
1
https://gitee.com/openharmony/communication_dsoftbus.git
git@gitee.com:openharmony/communication_dsoftbus.git
openharmony
communication_dsoftbus
communication_dsoftbus
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册