已合并
[Ubse] #fix# ubse修复asan扫描内存泄露 #1449
[Ubse] #fix# ubse修复asan扫描内存泄露 #1449
已合并
朱程成创建于 5 天前
朱程成
朱程成
5 天前

当前PR是否有AI参与:

[x] 否

[ ] 是
__1. AI Agent 平台:
__2. AI 模型:
__3. Prompt上下文 :

参考:openEuler社区《生成式AI工具使用与开源贡献政策》

PR功能描述 / 为什么需要这个合入**:

该PR关联的issue

(格式为fixes #<issue号>, 或者resolves #<issue号>): fixes #

希望检视人员了解:

likedislike
Pull Request已成功合入, 合并人@openeuler-ci-bot
(感谢 朱程成 的贡献)
朱程成朱程成
5 天前 创建了 pull request,commit 731a8075
atomgit-bot
atomgit-bot
5 天前 评论:

变更摘要

本 PR 主要针对 Ubse 模块在 ASAN 扫描中发现的若干内存泄漏问题进行修复,核心改动集中在:syssentry 插件中工作线程与 xalarm 句柄的生命周期管理(以 join 替代 detach 并在 Stop 中主动注销以唤醒阻塞线程)、UbseTaskExecutor::Stop() 对队列残留任务的清理、UbseXml::SetXmlns 中游离命名空间节点的修复,以及 ReplyWhenChannelNotInMap 中错误路径的提前返回与 ubse_ring_buffer.h 新增的非阻塞出队接口。

主要改动

  • xalarm 句柄生命周期修复(sentry_observer.cpp / sentry_observer.h:将 alarm_register* registerInfo_ 提升为类成员并由新增的 registerMtx_ 互斥锁保护;Stop() 中在锁内主动调用 UnRegisterXalarm 使阻塞的 xalarmGetEventFunc 立即以 -ENOTCONN 返回,并将 worker->detach() 改为 worker->join(),避免线程访问已析构对象;SentryEventListen 取句柄快照后再进入阻塞等待,防止长持锁阻塞 Stop 注销。
  • 线程池停止时清理残留任务(ubse_thread_pool.cpp + ubse_ring_buffer.hUbseTaskExecutor::Stop() 在工作线程 join 退出后,通过 mRunnableQueue 新增的 TryDequeue 非阻塞出队接口循环取出并 DecreaseRef 释放队列中未被消费的任务对象,仅释放对象而不执行 lambda,避免任务泄漏及触发已停止模块的依赖。
  • 命名空间创建传参修复(ubse_xml.cppSetXmlnsxmlNewNs 的第一个参数由 nullptr 改为 curNode,避免创建不挂载到节点、游离于 doc 之外导致泄漏的命名空间定义。
  • 通道异常路径提前返回(ubse_com_engine.cppReplyWhenChannelNotInMap 中将 traceId 获取、通道空指针检查及 UBSE_COM_ERROR_CHANNEL_NULL 回调提前到 UBSHcomRequest 构造之前,空通道时直接返回,避免后续流程在异常状态下继续执行。
likedislike
atomgit-bot
atomgit-bot
5 天前 评论:

代码审查

✅ 未发现问题

likedislike
openeuler-ci-botopeneuler-ci-bot成员
5 天前 将hlinbo,shw030915,Gao_Victor,qmyyxtl,caowaterman设为审查人
openeuler-ci-botopeneuler-ci-bot成员
5 天前 添加了label:sig/sig-UB-ServiceCore
此处折叠了182条消息 查看更多
openeuler-ci-bot
openeuler-ci-bot成员
21 小时前 评论:
likedislike
xuchenfeng成员
21 小时前 评论:

/lgtm
/approve

likedislike
openeuler-ci-botopeneuler-ci-bot成员
21 小时前 添加了label:lgtm-xuchenfengcleancode
openeuler-ci-bot
openeuler-ci-bot成员
21 小时前 评论:

Review Code Feedback

  • The label lgtm-xuchenfengcleancode was added to this pull request. It means that xuchenfengcleancode reviewed the code changes. 👋
Tips
  • If this pull request is not merged while all conditions are met, comment /check-pr to try again. 😄
likedislike
openeuler-ci-botopeneuler-ci-bot成员
21 小时前 合入了pull request,合并节点 SHA:892675345b68aac1156364c3075ea483b346e487