| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: 移除 FunctionCompile 对 numa 配置的依赖,资源类型改为编译期固定生成 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4424 merge refactor/remove-numa-config-dep into develop refactor: 移除 FunctionCompile 对 numa 配置的依赖,资源类型改为编译期固定生成 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 移除 CompileConfigJson::GetResourceTypeFromNumaConfig,FunctionCompile 中资源类型改为编译期固定生成 Ascend + host(X86/Aarch),消除对 numa 配置 JSON 的不必要运行时依赖。 主要变更: - 删除 GetResourceTypeFromNumaConfig 函数(唯一读取 OPTION_NUMA_CONFIG 的非测试代码),资源类型固定为 {kResourceTypeAscend, ExecutionRuntime::IsX86() ? kResourceTypeX86 : kResourceTypeAarch} - 删除 DeployLocation 类,将 IsX86() 静态方法迁移到 ExecutionRuntime 中 - 清理 compile_config_json.cc 中 ge_global_options.h/ge_types.h 无用 include - 清理 UT 测试中冗余的 OPTION_NUMA_CONFIG 设置代码 - 更新 dflow.md 文档中 _dflow_runnable_resource 属性描述 ## 变更类型 - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) ## 关联的Issue ## 如何测试 1. 编译 data_flow_base、dflow_runner、npu_executor_static(deployer)库 2. 编译并运行 ut_libge_helper_utest UT 测试 3. 编译 helper_runtime_test ST 测试 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 **验证结果**: - data_flow_base 编译通过 - dflow_runner 编译通过 - npu_executor_static(deployer)编译通过 - ut_libge_helper_utest 编译通过,83 个测试用例全部 PASSED - helper_runtime_test(ST)编译通过 **行为变化说明**:之前若 numa 配置只含 Ascend,则只编译 Ascend;之后始终编译两种类型。但 CompileAllResourceType 已有容错(toolchain 不存在则 skip),不会因多编译一种类型而失败。 See merge request: cann/ge!4424 | 4 小时前 | |
fix: VerifyIpaddr使用精确IP匹配替代子串匹配,修复IP白名单绕过漏洞 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !3754 merge fix/verify-ipaddr-exact-match into develop fix: VerifyIpaddr使用精确IP匹配替代子串匹配,修复IP白名单绕过漏洞 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 dflow deployer daemon 中 VerifyIpaddr 方法的 IP 白名单校验漏洞。 原实现使用 peer_uri.find(config.ipaddr) != std::string::npos 子串匹配,存在绕过风险: - 配置 192.168.1.1 时,192.168.1.100 也会匹配成功 - 配置 10.0.0.1 时,210.0.0.1 也会匹配成功 修复方案:复用已有的 DaemonClientManager::GetClientIpAndPort 方法从 peer_uri(格式 ipv4:ip:port)中精确提取 IP 地址,然后做精确字符串匹配。同时将 ClientAddr 和 GetClientIpAndPort 从 private 移为 public 以便复用。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 配置远程节点 IP 白名单为 10.216.56.15 2. 从 10.216.56.15 发起连接,验证通过 3. 从 10.216.56.150 发起连接,验证被拒绝(旧代码会误放行) 4. 从 210.216.56.15 发起连接,验证被拒绝(旧代码会误放行) 5. 运行 UT TestVerifyIpaddrExactMatch 用例验证精确匹配和绕过场景 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效Commit的合并等 ## 其他信息 See merge request: cann/ge!3754 | 1 个月前 | |
fix: 修复dflow安全问题 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !3998 merge fix/dflow-security-fixes into develop fix: 修复dflow安全问题 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 dflow 目录下 3 个安全问题和 1 个代码 Bug: 1. **命令注入防护**( flow_model_om_saver.cc):SaveOmDataToFile 中 system("cp " + release_pkg + ...) 的 release_pkg 来自缓存 JSON 文件,未经正则校验。增加与 om_file_name 相同的正则白名单校验,排除 shell 元字符。 2. **越界读取防护 + ori_shape 逻辑修复**(flow_msg.cc、heterogeneous_exchange_service.cc):UpdateTensorDesc 中 num_dims(来自不可信 mbuf)仅检查上界 <= kMaxDimSize,缺少 >= 0 下界检查,负值导致 std::vector 构造越界读取。同时修复 ori_shape 逻辑:原代码从 shape 数组读取而非 original_shape,且两次 MutableShape() 覆盖。改为:num_ori_dims == 0 时用 shape 赋给 SetOriginShape,否则从 original_shape 数组读取。 3. **inotify 事件步进修复**(abnormal_status_handler.cc):sizeof(struct inotify_event *)(8字节)误用为 sizeof(struct inotify_event)(16字节),导致事件解析错位。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 配置 CANN toolkit 环境变量:source ~/Ascend/ascend-toolkit/latest/bin/setenv.bash 2. 增量编译 UT target:make -C build_ut ut_libge_helper_utest -j$(nproc) 3. 运行测试:./build_ut/tests/dflow/runner/ut/ge/ut_libge_helper_utest 4. 确认 721 个用例全部 PASSED ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 - UT 测试结果:721 个用例全部 PASSED - pre-commit 检查全部 PASSED(clang-format、codespell、OAT 等) See merge request: cann/ge!3998 | 1 个月前 | |
fix: dflow对aclInit重复初始化场景做兼容处理 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4441 merge fix/dflow-acl-repeat-init into develop fix: dflow对aclInit重复初始化场景做兼容处理 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 dflow 两处 aclInit 调用(dflow_api.cc 的 DFlowInitialize 和 engine_daemon.cc 的 InitializeWithArgs)用进程内局部 acl_initialized flag 判断是否已初始化,存在两个问题: ### 问题1:重复初始化被误判为致命错误 当同进程其他组件已调过 aclInit() 时,dflow 重复调用会得到 ACL_ERROR_REPEAT_INITIALIZE(100002),被 ret != ACL_SUCCESS 误判为致命错误返回 FAILED。按 ACL 文档定义,此返回码表示"重复初始化或重复加载",ACL 已处于正确的已初始化状态,不应视为错误。 ### 问题2:重复初始化场景下误调用 aclFinalize aclInit 返回 ACL_ERROR_REPEAT_INITIALIZE 时表示外部已初始化 ACL,但 dflow 仍将 acl_initialized 置为 true,导致 DFlowFinalize/EngineDaemon::Finalize 时调用 aclFinalize 把外部初始化的 ACL 给 teardown 了。 ### 修复方案 1. **兼容重复初始化**:两处调用点将 ACL_ERROR_REPEAT_INITIALIZE 当成功处理(置 acl_initialized = true,继续执行),同时失败日志补充 acl 返回码便于定位 2. **正确管理 ACL 生命周期**:引入 acl_owned_by_dflow 标志区分 ACL 生命周期归属,仅当 dflow 自己 aclInit 成功(返回 ACL_SUCCESS)时才置 true,Finalize 时仅在该标志为 true 时才调用 aclFinalize | 场景 | aclInit 返回 | acl_owned_by_dflow | Finalize 时调 aclFinalize? | |------|---------------|---------------------|-------------------------------| | dflow 自己初始化 | ACL_SUCCESS | true | 是 | | 外部已初始化 | ACL_ERROR_REPEAT_INITIALIZE | false | 否 | | 初始化失败 | 其他错误码 | false | 否 | ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue ## 如何测试 ### UT(ut_libge_helper_utest) 1. DFlowInitialize_acl_repeat_init:mock aclInit 返回 ACL_ERROR_REPEAT_INITIALIZE,断言 DFlowInitialize 返回 SUCCESS,且 DFlowFinalize 后不调用 aclFinalize 2. DFlowInitialize_acl_init_failed:mock aclInit 返回 ACL_ERROR_INVALID_PARAM,断言 DFlowInitialize 返回 FAILED,且不调用 aclFinalize 3. TestEngineDaemonAclRepeatInit:同上,针对 EngineDaemon::InitializeWithArgs 4. TestEngineDaemonAclInitFailed:同上,针对 EngineDaemon::InitializeWithArgs ### ST(helper_runtime_test) 1. DataFlowApiTest.DFlowInitialize_acl_repeat_init:同 UT 场景1 2. DataFlowApiTest.DFlowInitialize_acl_init_failed:同 UT 场景2 3. STEST_helper_runtime.TestEngineDaemonAclRepeatInit:同 UT 场景3 4. STEST_helper_runtime.TestEngineDaemonAclInitFailed:同 UT 场景4 ### 覆盖率 UT 和 ST 新增分支覆盖率均为 **100%**(4/4 分支),覆盖了 ACL_SUCCESS、ACL_ERROR_REPEAT_INITIALIZE、其他错误码三个路径。 ### 回归验证 - UT 28 个相关用例全部通过 - ST 8 个相关用例全部通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/ge!4441 | 4 小时前 | |
refactor: 删除废弃的 FlowNodeBatchMemCfg 内存配置链路 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !3820 merge ln_0224 into develop refactor: 删除废弃的 FlowNodeBatchMemCfg 内存配置链路 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 FlowNodeBatchMemCfg 内存配置整条链路(JSON deploy_mem_info 解析 → proto model_mem_size 字段传递)属于功能废弃后遗留的死代码:接收端 FlowModelReceiver::UpdateDeployPlan(flow_model_receiver.cc)完全不读取 model_mem_size 字段,数据只解析传递无实际消费。 本次删除完整链路: - **proto 层**:deployer.proto 中 ModelMemSize message 及 UpdateDeployPlanRequest.model_mem_size 字段 - **编译期**:FlowNodeBatchMemCfg 结构体、CheckAndProcessMemCfg/SetMemCfgRecord 函数、deploy_mem_info JSON 解析、ATTR_NAME_DATA_FLOW_DEVICE_MEM_CFG 属性传递链路 - **部署期**:FlowModel::SetLogicDeviceToMemCfg/GetLogicDeviceToMemCfg 及成员、flow_model_sender 中设置 proto model_mem_size 的代码 - **测试**:删除专门测 mem limit 的 UT/ST 用例,清理其余用例中的 deploy_mem_info JSON 块 ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 增量编译 flow_graph target 通过(含 compile_config_json、data_flow_graph_auto_deployer、flow_model.h 改动) ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 共删除 606 行废弃代码,涉及 11 个文件。 See merge request: cann/ge!3820 | 1 个月前 | |
build: 将dflow链接目标adump_server替换为ascend_dump和adump_headers Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !3900 merge fix/dflow-adump-link-target into develop build: 将dflow链接目标adump_server替换为ascend_dump和adump_headers Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 将 dflow/deployer/CMakeLists.txt 中三个目标(npu_executor_static、npu_executor_main、host_cpu_executor_main)的 adump_server 链接目标替换为 ascend_dump(动态库)和 adump_headers(头文件接口库),与 base/CMakeLists.txt 的链接方式保持一致。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 执行 bash build.sh --ge_executor 构建 dflow 执行器包 2. 确认 npu_executor_main、host_cpu_executor_main、npu_executor_static 三个目标链接成功 3. 确认链接产物中 libascend_dump.so 被正确链接,libadump_server.a 不再被引用 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/ge!3900 | 1 个月前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 小时前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 4 小时前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |