已关闭
[Bug]: 跨 Pod 场景下 Controller 使用本地 key 校验全局 Endpoint ID 导致心跳失败 #643
yilunh创建于  26 天前关闭于  26 天前
yilunh
26 天前 创建

在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。

⚠️ 安全信息提醒:请仔细检查提供的文本内容,确保其不包含敏感数据信息,包括但不限于:

  • API 令牌或密钥
  • 密码或身份验证凭证
  • 私有网址或接口地址
  • 个人或机密数据
  • ...

在分享配置信息或代码示例时,请将敏感信息脱敏处理,或使用 <TOKEN> 等占位符替代原有内容。

环境信息

A2/A3

🐛 问题描述

同一推理实例跨多个 Pod 部署时,各 Pod 内部的 Endpoint 映射 key 可能都从 0 开始,但每个 Endpoint 的 Endpoint.id 是实例级全局唯一 ID。NodeManager 心跳上报的 status key 使用全局 Endpoint.id。
Controller 在 Instance.update_heartbeat() 中使用 self.endpoints[pod_ip] 的字典 key 构造期望 Endpoint 集合,导致 Pod 内本地 key 与实例级全局 Endpoint ID 被混用。
当第二个及后续 Pod 的本地 key 与全局 ID 不一致时,Controller 会把合法心跳误判为 Endpoint 集合不一致。持续误判后可能触发心跳超时、实例状态异常以及原有重配置流程。

欢迎加入社区,感谢您对社区的贡献 🎉!

likedislike
ascend-robotascend-robot成员
26 天前 添加了label:bug
wangyangwangyang成员
26 天前 关闭了 issue
wangyangwangyang成员
26 天前 issue状态由 TODO 改变为 DONE
ascend-robotascend-robot成员
26 天前 添加了label:resolved