| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[feature] kv-conductor /query 支持 msgpack 编码,10倍性能收益 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !687 merge opt/kv_conductor_query_msgpack into master [feature] kv-conductor /query 支持 msgpack 编码,10倍性能收益 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: tobking Description: ## 1. 合入背景 为 kv-conductor 的 /query 与 /query_by_hash 增加 MessagePack 编解码支持,并在 Coordinator 端到端打通(ConductorApiClient.query_conductor 默认走 msgpack)。长上下文(1M/5M token)场景下,KV 亲和性查询的请求体积与编解码耗时显著下降。 借鉴 Mooncake conductor #3258 的 Content-Type 分派方案;与 KV Conductor 的前缀索引能力(#338 对应的自研 kv-conductor)配套演进。 关联 ISSUE:[#455](https://gitcode.com/Ascend/MindIE-Motor/issues/455) ## 2. 修改内容 1. **kv-conductor(Rust,motor/kv_conductor/)** - /query、/query_by_hash 按请求 Content-Type 分派:application/msgpack → rmp_serde 解码请求,响应/错误/空结果用 rmp::encode 手工编码;其他 Content-Type 走原 JSON 路径(行为不变)。 - 响应侧手工编码的原因:QueryResponse 使用 #[serde(flatten)](tenants 展开到顶层 map),msgpack 序列化器不支持 flatten——手工编码保证 msgpack wire 形状与 JSON 逐字节等价,并有单元测试(rmpv→serde_json 结构化对比)守护。 - QueryRequest / QueryByHashRequest 增加 Serialize(原仅 Deserialize)。 2. **Coordinator(Python)** - ConductorApiClient:新增 encode_query_msgpack / decode_query_response_msgpack(msgspec),query_conductor() 按 kv_conductor_config.query_encoding(默认 "msgpack")分派;响应按服务器 Content-Type 解析(msgpack → msgspec,否则 JSON),**旧版 JSON-only conductor 自动兼容,无需配置切换**。 - SafeHTTPSClient 新增 post_bytes()(原始 body POST)。 - KvConductorConfig 新增 query_encoding 配置项。 3. **测试** - Rust:单元测试 120(新增 msgpack 往返、wire 形状等价、Content-Type 嗅探、错误/空结果编码)+ 集成测试 20(新增 msgpack/JSON 查询结果一致、msgpack /query_by_hash、404/400 错误路径按请求编码返回);cargo clippy -D warnings、cargo fmt 通过。 - Python:api_client 44(新增 msgpack wire 格式断言、json 配置路径、legacy JSON 响应 fallback)、coordinator 模块 1155 全过。 - 性能验证使用临时 benchmark 脚本(真实 conductor 进程 + client 真实编解码路径),bench 属验证工具未随 PR 上库。 ## 3. 资料变更 涉及: - docs/zh/user_guide/configuration/config_reference.md:新增 kv_conductor_config.query_encoding 配置说明。 - skill reference(.agent/skills/motor-dev/references/coordinator.md、kv-conductor.md):新增 msgpack 编解码章节与端到端数据,并修正两处过时内容(服务端加权评分模型已移除、src/indexer.rs → src/indexer/ 目录)。 ## 4. 接口变更 涉及(客户面可见): - POST /query、POST /query_by_hash 新增 Content-Type: application/msgpack 请求编码支持,响应随请求编码返回(JSON 默认行为不变,向后兼容)。 - Coordinator 配置新增 kv_conductor_config.query_encoding(默认 "msgpack";对接旧版 conductor 可配 "json")。 ## 5. 测试结果 **性能收益**(真实 kv-conductor release 进程 + Coordinator client 真实编解码路径,best-of-5,DeepSeek V4 风格长上下文): === 1M tokens(block_size=128)=== step JSON msgpack 提速 请求体积 encode 29.92 ms 2.89 ms 10.4x 6.65MB -> 2.99MB (-55%) HTTP RTT 45.63 ms 12.07 ms 3.78x (客户端序列化+服务端XXH3哈希/树匹配/序列化+网络) TOTAL 45.63 ms 12.07 ms 3.78x === 5M tokens(block_size=128)=== encode 149.8 ms 14.4 ms 10.4x 33.3MB -> 14.9MB (-55%) HTTP RTT 220.5 ms 41.9 ms 5.26x TOTAL 220.5 ms 41.9 ms 5.26x - 5M 上下文单次查询省 ~178ms,1M 省 ~34ms;请求体积减半(网络传输同步受益)。 - 收益来源:客户端 msgspec 编码(10x)、服务端 rmp 解析 vs serde_json(RTT 内体现)、传输字节减半。 **短上下文覆盖**(1 ~ 16K tokens,纯编解码,msgspec vs json.dumps/loads,best-of-20000): tokens | json enc msgpack enc | json dec msgpack dec 1 | 1.07us 0.12us | 1.19us 0.21us 64 | 2.83us 0.27us | 2.94us 0.51us 1024 | 26.44us 2.31us | 26.44us 7.96us 16384 | 437.67us 32.82us | 430.86us 148.58us - 全长度区间(1 ~ 16K token)msgpack 均更快:1 token 时亦快 ~9x(编码 0.12us vs 1.07us); - **无临界点、无负收益**——msgspec 为纯 C 实现,固定开销(~0.1-0.2us)低于 json.dumps/loads 的固定开销(~1-1.2us),短上下文(普通对话场景)同样占优; - 默认 query_encoding: "msgpack" 在短/长上下文下均无回归。 **功能测试**: - cargo test:120 单元 + 20 集成全过; - bash tests/run_tests.sh tests/coordinator/:1155 用例全过; - pre-commit 全量通过(ruff/pylint/bandit/cargo clippy/fmt 等)。 **测试场景**:单元(编解码往返/等价性)、集成(HTTP Content-Type 协商、错误路径、JSON 兼容)、端到端(1M/5M 长上下文性能)。精度/显存不涉及(无模型运行)。 ## 6. CheckList - [x] 代码注释完备 - [x] 正确记录维测日志 - [x] 是否有UT用例(120 Rust 单元 + 20 集成 + 44 Python 单测) - [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题(查询路径只读锁语义未变,msgpack 编解码为无状态纯函数) See merge request: Ascend/MindIE-Motor!687 | 20 小时前 | |
[feature] kv-conductor /query 支持 msgpack 编码,10倍性能收益 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !687 merge opt/kv_conductor_query_msgpack into master [feature] kv-conductor /query 支持 msgpack 编码,10倍性能收益 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: tobking Description: ## 1. 合入背景 为 kv-conductor 的 /query 与 /query_by_hash 增加 MessagePack 编解码支持,并在 Coordinator 端到端打通(ConductorApiClient.query_conductor 默认走 msgpack)。长上下文(1M/5M token)场景下,KV 亲和性查询的请求体积与编解码耗时显著下降。 借鉴 Mooncake conductor #3258 的 Content-Type 分派方案;与 KV Conductor 的前缀索引能力(#338 对应的自研 kv-conductor)配套演进。 关联 ISSUE:[#455](https://gitcode.com/Ascend/MindIE-Motor/issues/455) ## 2. 修改内容 1. **kv-conductor(Rust,motor/kv_conductor/)** - /query、/query_by_hash 按请求 Content-Type 分派:application/msgpack → rmp_serde 解码请求,响应/错误/空结果用 rmp::encode 手工编码;其他 Content-Type 走原 JSON 路径(行为不变)。 - 响应侧手工编码的原因:QueryResponse 使用 #[serde(flatten)](tenants 展开到顶层 map),msgpack 序列化器不支持 flatten——手工编码保证 msgpack wire 形状与 JSON 逐字节等价,并有单元测试(rmpv→serde_json 结构化对比)守护。 - QueryRequest / QueryByHashRequest 增加 Serialize(原仅 Deserialize)。 2. **Coordinator(Python)** - ConductorApiClient:新增 encode_query_msgpack / decode_query_response_msgpack(msgspec),query_conductor() 按 kv_conductor_config.query_encoding(默认 "msgpack")分派;响应按服务器 Content-Type 解析(msgpack → msgspec,否则 JSON),**旧版 JSON-only conductor 自动兼容,无需配置切换**。 - SafeHTTPSClient 新增 post_bytes()(原始 body POST)。 - KvConductorConfig 新增 query_encoding 配置项。 3. **测试** - Rust:单元测试 120(新增 msgpack 往返、wire 形状等价、Content-Type 嗅探、错误/空结果编码)+ 集成测试 20(新增 msgpack/JSON 查询结果一致、msgpack /query_by_hash、404/400 错误路径按请求编码返回);cargo clippy -D warnings、cargo fmt 通过。 - Python:api_client 44(新增 msgpack wire 格式断言、json 配置路径、legacy JSON 响应 fallback)、coordinator 模块 1155 全过。 - 性能验证使用临时 benchmark 脚本(真实 conductor 进程 + client 真实编解码路径),bench 属验证工具未随 PR 上库。 ## 3. 资料变更 涉及: - docs/zh/user_guide/configuration/config_reference.md:新增 kv_conductor_config.query_encoding 配置说明。 - skill reference(.agent/skills/motor-dev/references/coordinator.md、kv-conductor.md):新增 msgpack 编解码章节与端到端数据,并修正两处过时内容(服务端加权评分模型已移除、src/indexer.rs → src/indexer/ 目录)。 ## 4. 接口变更 涉及(客户面可见): - POST /query、POST /query_by_hash 新增 Content-Type: application/msgpack 请求编码支持,响应随请求编码返回(JSON 默认行为不变,向后兼容)。 - Coordinator 配置新增 kv_conductor_config.query_encoding(默认 "msgpack";对接旧版 conductor 可配 "json")。 ## 5. 测试结果 **性能收益**(真实 kv-conductor release 进程 + Coordinator client 真实编解码路径,best-of-5,DeepSeek V4 风格长上下文): === 1M tokens(block_size=128)=== step JSON msgpack 提速 请求体积 encode 29.92 ms 2.89 ms 10.4x 6.65MB -> 2.99MB (-55%) HTTP RTT 45.63 ms 12.07 ms 3.78x (客户端序列化+服务端XXH3哈希/树匹配/序列化+网络) TOTAL 45.63 ms 12.07 ms 3.78x === 5M tokens(block_size=128)=== encode 149.8 ms 14.4 ms 10.4x 33.3MB -> 14.9MB (-55%) HTTP RTT 220.5 ms 41.9 ms 5.26x TOTAL 220.5 ms 41.9 ms 5.26x - 5M 上下文单次查询省 ~178ms,1M 省 ~34ms;请求体积减半(网络传输同步受益)。 - 收益来源:客户端 msgspec 编码(10x)、服务端 rmp 解析 vs serde_json(RTT 内体现)、传输字节减半。 **短上下文覆盖**(1 ~ 16K tokens,纯编解码,msgspec vs json.dumps/loads,best-of-20000): tokens | json enc msgpack enc | json dec msgpack dec 1 | 1.07us 0.12us | 1.19us 0.21us 64 | 2.83us 0.27us | 2.94us 0.51us 1024 | 26.44us 2.31us | 26.44us 7.96us 16384 | 437.67us 32.82us | 430.86us 148.58us - 全长度区间(1 ~ 16K token)msgpack 均更快:1 token 时亦快 ~9x(编码 0.12us vs 1.07us); - **无临界点、无负收益**——msgspec 为纯 C 实现,固定开销(~0.1-0.2us)低于 json.dumps/loads 的固定开销(~1-1.2us),短上下文(普通对话场景)同样占优; - 默认 query_encoding: "msgpack" 在短/长上下文下均无回归。 **功能测试**: - cargo test:120 单元 + 20 集成全过; - bash tests/run_tests.sh tests/coordinator/:1155 用例全过; - pre-commit 全量通过(ruff/pylint/bandit/cargo clippy/fmt 等)。 **测试场景**:单元(编解码往返/等价性)、集成(HTTP Content-Type 协商、错误路径、JSON 兼容)、端到端(1M/5M 长上下文性能)。精度/显存不涉及(无模型运行)。 ## 6. CheckList - [x] 代码注释完备 - [x] 正确记录维测日志 - [x] 是否有UT用例(120 Rust 单元 + 20 集成 + 44 Python 单测) - [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题(查询路径只读锁语义未变,msgpack 编解码为无状态纯函数) See merge request: Ascend/MindIE-Motor!687 | 20 小时前 | |
[bugfix]统一coordinator中apiconfig配置 Co-authored-by: ganglv<lvgang1@huawei.com> # message auto-generated for no-merge-commit merge: !84 merge master_b110 into master [bugfix]统一coordinator中apiconfig配置 Created-by: ganglv Commit-by: ganglv Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!84 | 3 个月前 | |
Coordinator支持自熔断 Co-authored-by: WZN-JJB<wuzhineng@huawei.com> # message auto-generated for no-merge-commit merge: !438 merge circuit_628 into master Coordinator支持自熔断 Created-by: qq_46749096 Commit-by: WZN-JJB Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. 在controller故障的情况下,coordinator要能自己感知实例故障,对实例进行隔离,从而能降级推理,完成请求。 增加coordinator自熔断机制,不依赖controller,熔断故障实例,在实例数量不足以进行pd分离推理时,降级为混部。 [#255](https://gitcode.com/Ascend/MindIE-PyMotor/issues/255) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 pd分离、混部路由,scheduler server,inferenceworker ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 [Coordinator自熔断自验报告](https://wiki.huawei.com/domains/123696/wiki/385355/WIKI2026070611747916) ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!438 | 1 个月前 | |
feat:添加body读取逻辑,当真实读取body体大于阈值时直接返回失败 | 17 天前 | |
feat(IPv6): A3 单栈 PD 推理 Co-authored-by: LinWei100<linwei100@huawei.com> # message auto-generated for no-merge-commit merge: !330 merge feat/a3-ipv6-pd-inference into master feat(IPv6): A3 单栈 PD 推理 Created-by: LinWei100 Commit-by: LinWei100 Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!330 | 1 个月前 | |
KV亲和场景,负载记账需要扣除已命中部分 & 删除P节点kv block负载因子,统一使用token Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !670 merge feat/workload-active-tokens-only into master KV亲和场景,负载记账需要扣除已命中部分 & 删除P节点kv block负载因子,统一使用token Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. [#395](https://gitcode.com/Ascend/MindIE-Motor/issues/395) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1.KV 亲和记账:Scheduler 最终选路后按 ISL − matched_tokens 提交负载 2.删除 active_kv_cache 因子,负载统一为 token 计量 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!670 | 6 天前 | |
[feature]增加告警清除逻辑 Co-authored-by: hxy<huxinyi9@huawei.com> # message auto-generated for no-merge-commit merge: !598 merge feat/hybrid-precision-detection into master [feature]增加告警清除逻辑 Created-by: hu-xinyi_555 Commit-by: hxy Merged-by: towncharlie Description: ## **1. 合入背景** 可见https://gitcode.com/Ascend/MindIE-Motor/issues/359 精度检测特性(前序合入 61b0475 [feature]支持混布场景的精度异常检测)已具备 **告警产生** 与 **auto-recovery 实例终止** 能力,但缺少完整的 **告警清除(CLEAR)闭环**: - auto-recovery 终止 P/D 实例后,OM 侧精度告警仍可能残留; - CCAE 手动下发 precision control 终止实例后,未同步清除对应 PD Group 告警; - 未开启 auto-recovery 时,实例恢复后无法通过连续正常检测自动清除活动告警; - Coordinator Scheduler 侧 alarm_active 状态无统一清理入口,影响后续同 PD Group 重复告警。 ## **2. 修改内容** 详细设计见:[docs/zh/design/fault_tolerance/precision_detection.md](../../pymotor/MindIE-PyMotor_8989/docs/zh/design/fault_tolerance/precision_detection.md)(告警清除章节) ### 2.1 三条清除路径 | 路径 | 触发方 | 行为 | |------|--------|------| | **auto-recovery 清除** | Controller | 精度 ALARM 触发终止 P/D 全部成功后,上报 CLEAR 至 OM,并通知 Coordinator 清理 Scheduler 活动状态 | | **CCAE 手动清除** | CCAE Reporter → Controller | 终止 P/D 时携带 precision_alarm_clear=true,复用统一恢复入口清除 OM 告警 + 通知 Coordinator | | **连续正常清除** | Coordinator | 活动告警下连续 precision_clear_threshold(默认 10)次有效正常检测后,上报 CLEAR | ### 2.2 组件交互(实现要点) 1. **Controller recovery_service.py(新增统一入口)** - complete_precision_pd_group_recovery():可选终止 P/D → 从 AlarmStore 查找活动精度告警 → 深拷贝原 Alarm 并 clear() 上报 OM → 调用 CoordinatorApiClient.notify_precision_alarm_cleared() 清理 Scheduler 状态 - terminate_pd_group() / is_precision_raise_alarm() 等辅助函数供 API 层复用 2. **Controller alarm_store.py** - 新增 _active_precision_alarms 索引与 find_active_precision_alarm(p_id, d_id),按 PD Group 追踪活动精度告警及其 moi 3. **Controller controller_api.py** - 精度 auto-recovery 成功后走 complete_precision_pd_group_recovery,响应携带 precision_alarm_cleared / precision_alarm_cleared_by_auto_recovery - POST /controller/terminate_instance 支持 precision_alarm_clear=true,CCAE 手动清除走同一恢复入口 4. **Coordinator Scheduler(scheduler.py + runtime)** - 新增 alarm_active、clear_probing、clear_tokens 等 per-PD-Group 状态 - record_precision_result() 在活动告警下累计连续正常样本,达 clear_threshold 触发 clear action - finish_precision_action(action_type=clear|raise) 提交 action 结果;auto-recovery 已清除时直接删除整组状态 - 新增 ZMQ 协议与 client/server 透传 finish_precision_action / record_precision_result(clear_threshold=...) 5. **Coordinator PrecisionReporter + PrecisionAlarm** - Reporter 支持 raise / clear 双 action 编排,clear_threshold_hit 时异步触发 CLEAR 上报 - PrecisionAlarm.execute(action=clear) 构造 build_precision_issue_clear_alarm() 并上报 Controller;CLEAR 必须使用与产生告警相同的 moi 6. **Coordinator Management API(新增)** - POST /precision/alarm_cleared:Controller 通知 Coordinator 删除 Scheduler 活动告警状态(Mgmt 进程 → Scheduler) 7. **CCAE Reporter + MotorBackend** - precision control 终止成功后调用带 precision_alarm_clear=true 的 group terminate - 新增 precision task 上报窗口与 controlCode 抑制逻辑 8. **公共层** - 新增 motor/common/alarm/deserialize.py:告警反序列化 - precision_issue_alarm.py:新增 build_precision_issue_clear_alarm() - coordinator.py:新增 precision_clear_threshold 配置项 ### 2.3 时序(auto-recovery 清除) mermaid sequenceDiagram participant CR as Coordinator PrecisionAlarm participant CT as Controller participant OM as OM/CCAE participant SCH as Coordinator Scheduler CR->>CT: POST report_alarms (ALARM) CT->>CT: terminate P/D instances CT->>OM: report ALARM + CLEAR (same moi) CT->>SCH: POST /precision/alarm_cleared SCH->>SCH: clear alarm_active state CT-->>CR: precision_alarm_cleared_by_auto_recovery=true --- ## **3. 资料变更** **涉及**,修改如下: | 文件 | 变更说明 | |------|----------| | docs/zh/design/fault_tolerance/precision_detection.md | 补充告警清除设计:三条清除路径、moi 一致性约束、Scheduler 状态清理、CCAE 手动清除时序 | | docs/zh/user_guide/features/precision_detection.md | 补充 precision_clear_threshold 配置说明 | | docs/zh/user_guide/api/observability_interface.md | 补充 CCAE precision control 调用 /controller/terminate_instance 时 precision_alarm_clear 字段说明 | --- ## **4. 接口变更** **涉及**,均为客户面/跨组件可见接口: | 接口 | 变更类型 | 说明 | |------|----------|------| | POST /controller/terminate_instance | **请求体扩展** | 新增可选字段 precision_alarm_clear: bool(默认 false)。为 true 时按 PD Group 终止 P/D 并清除精度告警;响应 data 新增 precision_alarm_cleared、scheduler_state_cleared、moi | | POST /controller/report_alarms(精度 ALARM 响应) | **响应扩展** | auto-recovery 成功后 data 新增 precision_alarm_cleared、precision_alarm_cleared_by_auto_recovery、scheduler_state_cleared | | POST /precision/alarm_cleared(Coordinator Mgmt) | **新增** | Controller → Coordinator,请求体 {p_instance_id, d_instance_id},清除 Scheduler 侧活动精度告警状态 | | Coordinator 配置 | **新增字段** | precision_detection_config.precision_clear_threshold(默认 10) | | CCAE precision control → MotorBackend | **行为变更** | 终止实例时携带 precision_alarm_clear=true | --- ## **5. 测试结果**  --- ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!598 | 14 天前 | |
【bugfix】coordinator add weight config Co-authored-by: ganglv<lvgang1@huawei.com> # message auto-generated for no-merge-commit merge: !677 merge master_icbc_shanghai into master 【bugfix】coordinator add weight config Created-by: ganglv Commit-by: ganglv Merged-by: tobking Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. KV Cache 亲和调度此前用 Conductor 返回的 matched_tokens(按介质覆盖终点)直接参与打分,存在两点不足: 1. **npu/cpu/disk_blocks 语义不清**:重叠前缀下各介质块数可能重复计入,无法表达「互斥真实命中块数」。 2. **介质价值差异无法配置**:HBM/NPU、CPU、Disk 对 TTFT 的贡献不同,但调度侧无法按介质加权;权重属于调度策略,不宜放在 Conductor(事实层)。 本 PR 将职责拆清:Conductor 只上报互斥命中事实;Coordinator 按 w_npu/w_cpu/w_disk 做亲和加权,并顺带把亲和参数收敛到嵌套配置 scheduler_config.kv_affinity。 ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1. **KV Conductor(事实层)** - 匹配阶段收集每 DP 的介质绝对终点(npu_end/cpu_end/disk_end)。 - build_response 按优先级 **NPU > CPU > Disk** 做互斥划分,写入 npu_blocks/cpu_blocks/disk_blocks。 - matched_tokens = (npu+cpu+disk) × block_size(未加权真实覆盖长度);实例级 longest_matched 仍取各 DP max。 2. **Coordinator(策略层)** - 新增/使用 KvAffinityConfig,配置迁入 scheduler_config.kv_affinity: - 原有:mode / load_weight / overlap_credit / prefill_load_scale / load_gate_topn - 新增:w_npu / w_cpu / w_disk(默认 **1.0 / 1.0 / 0.0**) - 亲和打分: text affinity_matched = min(round((npu×w_npu + cpu×w_cpu + disk×w_disk)×block_size), isl) prefill_cost = max(0, isl − overlap_credit × affinity_matched) - 兼容旧 flat key(kv_affinity_mode 等):自动迁入嵌套结构并告警;嵌套优先。 3. **配置透传** - scheduler_connection_manager / scheduler_client 将 kv_affinity 权重传入 KvCacheAffinityPolicy。 4. **文档与示例** - 更新亲和调度用户指南、配置参考、kv-conductor README/设计文档、config_sample.json 及 skill 文档。 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 涉及。已更新: - docs/zh/user_guide/features/kvcache_affinity.md - docs/zh/user_guide/configuration/config_reference.md - docs/zh/user_guide/deployment/k8s/pd_aggregation_deployment.md - docs/zh/design/kv_conductor.md - motor/kv_conductor/README.md - examples/features/config_sample.json - .agent/skills/motor-dev/references/{kv-conductor,coordinator}.md ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 涉及(客户面配置与 Conductor 响应语义): | 位置 | 变更 | |------|------| | Coordinator 配置 | 亲和参数由 flat kv_affinity_* 改为嵌套 scheduler_config.kv_affinity;保留 legacy 迁移 | | kv_affinity.w_npu/w_cpu/w_disk | 新增;默认 1.0/1.0/0.0 | | Conductor *_blocks | 语义改为互斥真实命中块数(NPU>CPU>Disk) | | Conductor matched_tokens | 改为互斥块数之和 × block_size(不再在 Conductor 侧乘权重) | ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!677 | 5 天前 | |
[feature] 在tracing中增加超时请求的请求结构 Co-authored-by: hxy<huxinyi9@huawei.com> # message auto-generated for no-merge-commit merge: !405 merge feat/tracing-sanitized-request-structure into master [feature] 在tracing中增加超时请求的请求结构 Created-by: hu-xinyi_555 Commit-by: hxy Merged-by: towncharlie Description: ## **1. 合入背景** 当前无法判断是哪个请求导致的服务挂死,对问题复现比较困难,所以希望加入超时的请求的结构(不包含请求的具体内容) ## **2. 修改内容** 增加了请求的结构 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果**  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!405 | 1 个月前 | |
[fix] 修复Coordinator测试用例在不同python版本现象不同的bug。【部分python版本会出现失败】 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !116 merge master into master [fix] 修复Coordinator测试用例在不同python版本现象不同的bug。【部分python版本会出现失败】 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/82 ## **2. 修改内容** 解决 from __future__ import annotations叠加不同pydantic版本引入的Request和'Request'解析逻辑差异的问题。 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 验证ok ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!116 | 3 个月前 | |
[feature]增加告警清除逻辑 Co-authored-by: hxy<huxinyi9@huawei.com> # message auto-generated for no-merge-commit merge: !598 merge feat/hybrid-precision-detection into master [feature]增加告警清除逻辑 Created-by: hu-xinyi_555 Commit-by: hxy Merged-by: towncharlie Description: ## **1. 合入背景** 可见https://gitcode.com/Ascend/MindIE-Motor/issues/359 精度检测特性(前序合入 61b0475 [feature]支持混布场景的精度异常检测)已具备 **告警产生** 与 **auto-recovery 实例终止** 能力,但缺少完整的 **告警清除(CLEAR)闭环**: - auto-recovery 终止 P/D 实例后,OM 侧精度告警仍可能残留; - CCAE 手动下发 precision control 终止实例后,未同步清除对应 PD Group 告警; - 未开启 auto-recovery 时,实例恢复后无法通过连续正常检测自动清除活动告警; - Coordinator Scheduler 侧 alarm_active 状态无统一清理入口,影响后续同 PD Group 重复告警。 ## **2. 修改内容** 详细设计见:[docs/zh/design/fault_tolerance/precision_detection.md](../../pymotor/MindIE-PyMotor_8989/docs/zh/design/fault_tolerance/precision_detection.md)(告警清除章节) ### 2.1 三条清除路径 | 路径 | 触发方 | 行为 | |------|--------|------| | **auto-recovery 清除** | Controller | 精度 ALARM 触发终止 P/D 全部成功后,上报 CLEAR 至 OM,并通知 Coordinator 清理 Scheduler 活动状态 | | **CCAE 手动清除** | CCAE Reporter → Controller | 终止 P/D 时携带 precision_alarm_clear=true,复用统一恢复入口清除 OM 告警 + 通知 Coordinator | | **连续正常清除** | Coordinator | 活动告警下连续 precision_clear_threshold(默认 10)次有效正常检测后,上报 CLEAR | ### 2.2 组件交互(实现要点) 1. **Controller recovery_service.py(新增统一入口)** - complete_precision_pd_group_recovery():可选终止 P/D → 从 AlarmStore 查找活动精度告警 → 深拷贝原 Alarm 并 clear() 上报 OM → 调用 CoordinatorApiClient.notify_precision_alarm_cleared() 清理 Scheduler 状态 - terminate_pd_group() / is_precision_raise_alarm() 等辅助函数供 API 层复用 2. **Controller alarm_store.py** - 新增 _active_precision_alarms 索引与 find_active_precision_alarm(p_id, d_id),按 PD Group 追踪活动精度告警及其 moi 3. **Controller controller_api.py** - 精度 auto-recovery 成功后走 complete_precision_pd_group_recovery,响应携带 precision_alarm_cleared / precision_alarm_cleared_by_auto_recovery - POST /controller/terminate_instance 支持 precision_alarm_clear=true,CCAE 手动清除走同一恢复入口 4. **Coordinator Scheduler(scheduler.py + runtime)** - 新增 alarm_active、clear_probing、clear_tokens 等 per-PD-Group 状态 - record_precision_result() 在活动告警下累计连续正常样本,达 clear_threshold 触发 clear action - finish_precision_action(action_type=clear|raise) 提交 action 结果;auto-recovery 已清除时直接删除整组状态 - 新增 ZMQ 协议与 client/server 透传 finish_precision_action / record_precision_result(clear_threshold=...) 5. **Coordinator PrecisionReporter + PrecisionAlarm** - Reporter 支持 raise / clear 双 action 编排,clear_threshold_hit 时异步触发 CLEAR 上报 - PrecisionAlarm.execute(action=clear) 构造 build_precision_issue_clear_alarm() 并上报 Controller;CLEAR 必须使用与产生告警相同的 moi 6. **Coordinator Management API(新增)** - POST /precision/alarm_cleared:Controller 通知 Coordinator 删除 Scheduler 活动告警状态(Mgmt 进程 → Scheduler) 7. **CCAE Reporter + MotorBackend** - precision control 终止成功后调用带 precision_alarm_clear=true 的 group terminate - 新增 precision task 上报窗口与 controlCode 抑制逻辑 8. **公共层** - 新增 motor/common/alarm/deserialize.py:告警反序列化 - precision_issue_alarm.py:新增 build_precision_issue_clear_alarm() - coordinator.py:新增 precision_clear_threshold 配置项 ### 2.3 时序(auto-recovery 清除) mermaid sequenceDiagram participant CR as Coordinator PrecisionAlarm participant CT as Controller participant OM as OM/CCAE participant SCH as Coordinator Scheduler CR->>CT: POST report_alarms (ALARM) CT->>CT: terminate P/D instances CT->>OM: report ALARM + CLEAR (same moi) CT->>SCH: POST /precision/alarm_cleared SCH->>SCH: clear alarm_active state CT-->>CR: precision_alarm_cleared_by_auto_recovery=true --- ## **3. 资料变更** **涉及**,修改如下: | 文件 | 变更说明 | |------|----------| | docs/zh/design/fault_tolerance/precision_detection.md | 补充告警清除设计:三条清除路径、moi 一致性约束、Scheduler 状态清理、CCAE 手动清除时序 | | docs/zh/user_guide/features/precision_detection.md | 补充 precision_clear_threshold 配置说明 | | docs/zh/user_guide/api/observability_interface.md | 补充 CCAE precision control 调用 /controller/terminate_instance 时 precision_alarm_clear 字段说明 | --- ## **4. 接口变更** **涉及**,均为客户面/跨组件可见接口: | 接口 | 变更类型 | 说明 | |------|----------|------| | POST /controller/terminate_instance | **请求体扩展** | 新增可选字段 precision_alarm_clear: bool(默认 false)。为 true 时按 PD Group 终止 P/D 并清除精度告警;响应 data 新增 precision_alarm_cleared、scheduler_state_cleared、moi | | POST /controller/report_alarms(精度 ALARM 响应) | **响应扩展** | auto-recovery 成功后 data 新增 precision_alarm_cleared、precision_alarm_cleared_by_auto_recovery、scheduler_state_cleared | | POST /precision/alarm_cleared(Coordinator Mgmt) | **新增** | Controller → Coordinator,请求体 {p_instance_id, d_instance_id},清除 Scheduler 侧活动精度告警状态 | | Coordinator 配置 | **新增字段** | precision_detection_config.precision_clear_threshold(默认 10) | | CCAE precision control → MotorBackend | **行为变更** | 终止实例时携带 precision_alarm_clear=true | --- ## **5. 测试结果**  --- ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!598 | 14 天前 | |
[bugfix] 优化证书私钥模数校验性能并拆分 TLS 相关 UT Co-authored-by: Jechin<yuzechen1@huawei.com> # message auto-generated for no-merge-commit merge: !694 merge test/speed-up-cert-ut into master [bugfix] 优化证书私钥模数校验性能并拆分 TLS 相关 UT Created-by: Jechin Commit-by: Jechin Merged-by: towncharlie Description: ## **1. 合入背景** Fixes [#459](https://gitcode.com/Ascend/MindIE-Motor/issues/459) 证书私钥模数校验在 RSA-3072 场景下通过 to_cryptography_key() 比对模数,单次约 550ms,导致 TLS 相关 UT 耗时过高;本 PR 改用 OpenSSL 原生校验并拆分冗余 comprehensive 用例。 ## **2. 修改内容** 1. **motor/common/http/cert_util.py** - validate_certs_and_keys_modulus 改为 SSL.Context.check_privatekey() 校验证书与私钥匹配,避免私钥 to_cryptography_key() 的慢路径。 2. **tests/coordinator/test_http_server_cert.py** - 将 test_validate_cert_and_key_comprehensive 拆为参数化用例(成功路径、非法路径、空文件、格式错误、密钥不匹配、CA 错误等),保持覆盖同时减少单函数内重复全量校验。 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及跨代码仓或客户面可见的接口变更;TLS 证书校验行为与语义不变,仅优化内部实现性能。 ## **5. 测试结果** - bash tests/run_tests.sh tests/coordinator/test_http_server_cert.py:31 passed - bash tests/run_tests.sh --serial:2711 passed,1 skipped - 证书 UT 文件总耗时由约 6s+ 降至约 4s;原先最慢单用例 test_validate_cert_and_key_comprehensive(约 6.75s)已消除 ## **6. CheckList** [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!694 | 1 天前 | |
PyMotor支持port自动检测 Co-authored-by: yangan7<yangan7@h-partners.com> # message auto-generated for no-merge-commit merge: !247 merge port_detect into master PyMotor支持port自动检测 Created-by: mindie_yangan Commit-by: yangan7 Merged-by: towncharlie Description: ## **1. 合入背景** Fixes [#157](https://gitcode.com/Ascend/MindIE-PyMotor/issues/157) ## **2. 修改内容** 1、port_allocator.py — 端口探测/避让/严格报错 + 三组件接入 + 通信矩阵打印 2、port_allocator_config.py — 开关与扫描范围配置 3、motor/config/{coordinator,controller,node_manager}.py — 增加 port_allocator_config 配置项 4、motor/{coordinator,controller,node_manager}/main.py — 启动前调用端口分配 5、tests/coordinator/test_main.py、tests/node_manager/test_config.py — UT 适配 内部端口冲突自动避让并写回配置;对外端口(Coordinator 1025、Controller 1026)冲突则报错退出;启动日志打印[Port matrix]。 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 1、controller pod port矩阵打印效果展示  coordinator pod port矩阵打印效果展示  prefill pod port矩阵打印效果展示  decode pod port矩阵打印效果展示  2、使用脚本强行抢占prefill pod 1026的port  自动检测后该prefill pod避让port为1027,该pods删除重启  重新加载权重后curl通推理请求  重新分配pod和port  3、严格独占类port直接给出清晰报错,不可抢占  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!247 | 2 个月前 | |
[feature] 31017服务端口需支持https能力 Co-authored-by: zhoujing101<zhoujing101@huawei.com> # message auto-generated for no-merge-commit merge: !500 merge EPD_2 into master [feature] 31017服务端口需支持https能力 Created-by: zhoujing101 Commit-by: zhoujing101 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/302 为 Coordinator Observability API(端口 1027,对应 Kubernetes NodePort 31017)添加 HTTPS 支持。此前 Management Server 已有 TLS 支持,Observability Server 缺失该能力。 ## **2. 修改内容** 1. **Coordinator Observability API 支持 HTTPS** - motor/coordinator/api_server/observability_server.py:ObservabilityServer 在 __init__() 中保存 self._obs_ssl_config = self.coordinator_config.mgmt_tls_config(复用 Management TLS 证书配置);run() 方法中检测 enable_tls 并创建 SSL 上下文赋值给 uvicorn config(成功时打 https:// 日志,失败时打告警日志并回退 HTTP);_apply_config_changes 从 pass 改为更新 _obs_ssl_config,支持热更新 TLS 配置 **使用方式**:在 motor_coordinator_config 中配置 mgmt_tls_config 即可同时启用 Management 和 Observability 端口的 HTTPS,无需额外配置项。 2. **Coordinator 配置摘要格式修正** - 将 ?? 等 unicode 字符替换为 ├─ / └─ / │ 树形结构 - 对齐各字段缩进,多级嵌套(如 ETCD / Master-Standby)也正确使用树形分支 3. **控制器侧验证**:Controller Observability API(端口 31027)此前已通过 observability_tls_config 支持 HTTPS,本次仅补充测试验证,确认其实现完整。 ## **3. 资料变更** 不涉及。 ## **4. 接口变更** 不涉及。无新增配置项,Observability Server 复用已有 mgmt_tls_config。 ## **5. 测试结果** - 全量测试 2320 passed, 1 skipped, 0 failed - 新增 14 个 UT 测试用例覆盖:ObservabilityServer 初始化/热更新/mock 行为验证、配置摘要格式、控制器已有 TLS 实现验证 - 测试环境:串行 + 并行执行均通过 | 测试类 | 数量 | 覆盖内容 | |---|---|---| | TestObservabilityServerTls | 11 | 初始化存储、默认禁用、证书路径、热更新、mock 行为验证(SSL 创建/跳过/失败告警/HTTPS 日志) | | TestCoordinatorConfigSummaryFormat | 1 | 配置摘要格式中 hybrid 字段缩进对齐(test_config_summary_includes_hybrid_fields) | | TestControllerApiObservabilityTls | 3 | AST 验证控制器已有 TLS 实现完整(配置字段 / init 引用 / enable_tls 分支) |   ## **6. CheckList** [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有 UT 用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!500 | 27 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 20 小时前 | ||
| 20 小时前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 17 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 14 天前 | ||
| 5 天前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 14 天前 | ||
| 1 天前 | ||
| 2 个月前 | ||
| 27 天前 |