Pull Request已成功合入, 合并人@openharmony_ci
(感谢 LyBbq 的贡献)感谢提交 Pull Requests!如果您提交的PR已经开发完毕,请评论 "start build" 触发门禁,更多交互操作,请访问OpenHarmony社区支持命令清单。如果需要调整订阅PR、Issue的变更状态,请访问订阅链接。
Thanks for submitting the pull request. If your Pull Request has already been developed, you can leave a "start build" comment to trigger the gated system. For more commands, please visit OpenHarmony Command List. If you need to change the subscription of a Pull Request or Issue, please visit the link.


感谢提交 Pull Requests!如果您提交的PR已经开发完毕,请评论 "start build" 触发门禁,更多交互操作,请访问OpenHarmony社区支持命令清单。如果需要调整订阅PR、Issue的变更状态,请访问订阅链接。
Thanks for submitting the pull request. If your Pull Request has already been developed, you can leave a "start build" comment to trigger the gated system. For more commands, please visit OpenHarmony Command List. If you need to change the subscription of a Pull Request or Issue, please visit the link.


首次触发
门禁构建开始,包含静态检查、代码编译和测试【dayu600_7885编译, ohos-host_mini_tdd编译, x86_64_virt编译, dayu200_tdd编译, master_inner_build编译, hap_build编译, dayu200编译, ohos-sdk编译, part_compile编译, mac-sdk编译, dayu200测试, dayu600_7885测试, dayu600_7885_codearts编译】,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/6a7db2d264650f998b2a3da7/runlist


代码门禁未通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a7db2d264650f998b2a3da7/runlist
静态检查:
| # | check type | result | report |
|---|---|---|---|
| 1 | codeCheck | pass | >>> |
编译测试:
| # | Device | build result | test result | package |
|---|---|---|---|---|
| 1 | ohos-sdk | failed(compile failed) | NA | >>> |
| 2 | dayu200 | success | success | >>> |
| 3 | dayu200_tdd | success | NA | >>> |
| 4 | hap_build | success | NA | >>> |
| 5 | part_compile | success(IGNORE) | NA | >>> |
| 6 | master_inner_build | failed(IGNORE)(代码同步失败) | NA | >>> |
| 7 | mac-sdk | success | NA | >>> |
| 8 | ohos-host_mini_tdd | success | NA | >>> |
| 9 | dayu600_7885 | success | success | >>> |
| 10 | x86_64_virt | success | NA | >>> |
| 11 | dayu600_7885_codearts | failed(IGNORE)(compile failed) | NA | >>> |


本地或库上代码有更新,全量重新构建,重置所有关联PR的验证状态
门禁构建开始,包含静态检查、代码编译和测试【ohos-host_mini_tdd编译, master_inner_build编译, dayu200编译, mac-sdk编译, dayu600_7885编译, hap_build编译, part_compile编译, dayu600_7885测试, dayu600_7885_codearts编译, ohos-sdk编译, dayu200测试, x86_64_virt编译, dayu200_tdd编译】,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/6a82a96364650f998b9eeddf/runlist


代码门禁通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a82a96364650f998b9eeddf/runlist
静态检查:
| # | check type | result | report |
|---|---|---|---|
| 1 | codeCheck | pass | >>> |
编译测试:
| # | Device | build result | test result | package |
|---|---|---|---|---|
| 1 | ohos-sdk | success | NA | >>> |
| 2 | dayu200 | success | success | >>> |
| 3 | dayu200_tdd | success | NA | >>> |
| 4 | hap_build | success | NA | >>> |
| 5 | part_compile | failed(IGNORE)(compile failed) | NA | >>> |
| 6 | master_inner_build | failed(IGNORE)(联合门禁失败) | NA | >>> |
| 7 | mac-sdk | success | NA | >>> |
| 8 | ohos-host_mini_tdd | success | NA | >>> |
| 9 | dayu600_7885 | success | success | >>> |
| 10 | x86_64_virt | success | NA | >>> |
| 11 | dayu600_7885_codearts | failed(IGNORE)(compile failed) | NA | >>> |


您好,Committer @liumingxiang1 @comicchang @aslklw @wang-luyu4 @lijj01 @chensiyi_CE @stonesxd @xuyuqiong @kroswang @djnash @gmiao522 @wh_qwe @liuchao-huawei @BruceXu @liuchuan666 @gaoweihua ,请分配检视人员检视该PR,可以通过命令"assign [@someone_id]"分配检视人员,也可以直接评论"assign"分配给自己进行检视。
Hello, Committer @liumingxiang1 @comicchang @aslklw @wang-luyu4 @lijj01 @chensiyi_CE @stonesxd @xuyuqiong @kroswang @djnash @gmiao522 @wh_qwe @liuchao-huawei @BruceXu @liuchuan666 @gaoweihua . Please assign someone to review the PR. You can assign a reviewer by using the command "assign [@someone_id]", or you can comment "assign" to review the PR by yourself.


Description:
问题背景:
RSRenderPipeline此前用三个并行容器维护 client→render 连接:renderConnections_(token→{tokenMaskId, connection})、tokenMaskIdMapTokens_(tokenMaskId→token)、connectionProcessPid_(pid→token)。查找需 pid→token→connection 两级跳转,插入/删除需同步维护三张表,存在两类问题:AddConnection只检查 token / tokenMaskId 是否已存在、不检查 pid,同一 pid 换新 token 重连时旧连接残留,FindClientToRenderConnection(remotePid)仍会命中旧连接;ConnectToRenderProcess的 Find→miss→新建→Add 流程是非原子的 check-then-act:同一 pid 并发 Connect 会各自创建连接,第二次AddConnection因 token 已存在被静默丢弃且返回 void,调用方拿到的是一条从未注册成功的连接,后续 Remove/Find 行为不可预期。修复方案:
unordered_map<pid_t, RenderConnectionInfo>(tokenMaskId / token / connection 打包为结构体),查找一次直达,增删只操作一张表(rs_render_pipeline.h)AddConnection改为返回实际注册的{connection, tokenMaskId}——pid 已存在时返回已有连接,否则插入新连接并返回;ConnectToRenderProcess去掉前置 Find,直接返回AddConnection结果,并发重连收敛到同一条已注册连接(rs_render_pipeline.cpp、rs_connect_to_render_process.cpp)RemoveConnection按 pid 单点删除,并校验 token 一致性(不匹配则打日志拒绝),防止旧 token 误删同 pid 的新连接RSRenderPipelineAgent::AddConnection签名(pipeline 为空时返回{nullptr, INVALID_TOKEN_MASK_ID})、RSRenderServiceConnectHub及RSProfiler::DumpConnections的遍历逻辑Issue number:https://gitcode.com/openharmony/graphic_graphic_2d/issues/25804
Test & Result:
CodeCheck:
L0新增用例自检结果