已合并
[core] chore: Config Store 可通过环境变量配置心跳超时 #1253
shilinlee创建于 9月7日
[core] chore: Config Store 可通过环境变量配置心跳超时 #1253
已合并
Pull Request已成功合入, 合并人@chenxin
(感谢 shilinlee 的贡献)atomgit-bot
9月7日 评论:
9月7日 评论:
变更摘要
本 PR 旨在让 Config Store 的心跳超时可配置:原先按固定心跳轮次(HEARTBEAT_TIMEOUT = 30)判断超时,现改为按毫秒直接判断,由新增环境变量 MF_CONFIG_STORE_HEARTBEAT_TIMEOUT_MS 控制。默认值 60000(60 秒),0 表示永不因心跳超时判定断链,最大支持 3600000(1 小时);非法值或超限值记录 ERROR 日志并回退默认值。改动集中在 AccStoreServer(smem_tcp_config_store_server.cpp / .h)的超时解析与检查逻辑,服务端检查周期及 TCP 断链处理逻辑保持不变,并同步新增环境变量定义(mf_env_define.h)与 2 个单元测试。
主要改动
- 新增毫秒级超时解析方法:在
AccStoreServer中新增静态方法ParseHeartbeatTimeoutMs,读取环境变量MF_CONFIG_STORE_HEARTBEAT_TIMEOUT_MS并校验取值范围([0, 3600000]),非法或超限时记录 ERROR 日志并返回默认值DEFAULT_HEARTBEAT_TIMEOUT_MS = 60000。 - 重写心跳超时判断逻辑:删除固定轮次数常量
HEARTBEAT_TIMEOUT = 30,改用DEFAULT_HEARTBEAT_TIMEOUT_MS与MAX_HEARTBEAT_TIMEOUT_MS = 3600000常量;检查线程CheckerThreadTask的断链条件由(curTime - it->second) / HEARTBEAT_INTERVAL > HEARTBEAT_TIMEOUT改为heartBeatTimeoutMs_ > 0 && curTime - it->second >= heartBeatTimeoutMs_,实现按毫秒超时且0值时关闭超时检测。 - 扩展成员与声明:在
smem_tcp_config_store_server.h中新增成员变量heartBeatTimeoutMs_及静态方法ParseHeartbeatTimeoutMs的声明,两个构造函数均以环境变量解析结果初始化该成员。 - 新增环境变量定义:在
mf_env_define.h中通过GetEnvStr注册MF_CONFIG_STORE_HEARTBEAT_TIMEOUT_MS环境变量。 - 补充单元测试:在
test_tcp_config_store_server.cpp中新增HeartbeatTimeoutParsesMillisecondsAndZero与HeartbeatTimeoutMissingOrInvalidUsesDefault两个用例,覆盖零值、正数、默认值、非法值(-1、abc)及 1 小时上限边界。


不准确?
ascend-robot
9月7日 评论:
9月7日 评论:
atomgit-bot
9月7日 评论:
9月7日 评论:
ascend-robot
9月7日 评论:
9月7日 评论:
流水线 PR-pipeline_memfabric_hybrid#5745 (重试第1次) [ commitID:6520110e ] 已完成
| 阶段 | 任务名 | 状态 | 详情 |
|---|---|---|---|
| 编译构建 | Build_memfabric-hybrid | ✅ COMPLETED | >>> |
| Build_memfabric-hybrid-bazel | ✅ COMPLETED | >>> | |
| 恶意代码检查 | Antipoison_mf | ✅ COMPLETED | >>> |
| 编码安全与规范检查 | pre-commit | ✅ COMPLETED | >>> |
| CodeCheck_mf | ✅ COMPLETED | >>> | |
| 开源片段检查 | SCA_mf | ✅ COMPLETED | >>> |
| 开发者测试 | UT_memfabric-hybrid | ✅ COMPLETED | >>> |
| zbal_ascend_pr_build_test_ut | ✅ COMPLETED | >>> | |
| 流水线 | PR-pipeline_memfabric_hybrid | ✅ COMPLETED | >>> |
- compile : 运行流水线
- retry : 重试流水线所有失败子任务
- retry <任务名> : 仅重试指定失败子任务
- stop : 停止流水线


此处折叠了57条消息 查看更多
9月8日 删除了label:pr-audit-failed
9月8日 将mrh1024设为评审人
9月8日 通过了评审
9月8日 通过审查
9月8日 合入了pull request
合入来源
问题/功能描述
Config Store 心跳超时原先按固定心跳轮次判断,无法配置超时时间或关闭超时检测。
修改方案描述
新增环境变量
MF_CONFIG_STORE_HEARTBEAT_TIMEOUT_S,直接按秒判断超时:60(60 秒)。0表示永不因心跳超时判定断链。3600(1 小时)。服务端检查周期及 TCP 断链处理逻辑保持不变,同步更新环境变量和 HA 文档。
是否涉及UT/ST
开发自检