Skip to content

fix(semantic): 修复目录摘要失败状态传播#3191

Open
wdsjjs wants to merge 1 commit into
volcengine:mainfrom
wdsjjs:fix/修复目录摘要失败状态

Hidden character warning

The head ref may contain hidden characters: "fix/\u4fee\u590d\u76ee\u5f55\u6458\u8981\u5931\u8d25\u72b6\u6001"
Open

fix(semantic): 修复目录摘要失败状态传播#3191
wdsjjs wants to merge 1 commit into
volcengine:mainfrom
wdsjjs:fix/修复目录摘要失败状态

Conversation

@wdsjjs

@wdsjjs wdsjjs commented Jul 12, 2026

Copy link
Copy Markdown

变更说明

修复目录摘要生成失败被错误标记为处理成功的问题。

此前,单次摘要生成、分批生成以及最终合并过程中发生的异常,可能会被吞掉或替换为占位内容、部分结果。DAG 的目录摘要任务也会捕获这些异常,导致现有的失败分类和重试流程无法正确处理。

本次修改让生成异常和任务取消继续向上传播,使目录摘要失败能够被正确标记,并进入项目已有的重试流程。

关联 Issue

Fixes #3151

变更类型

  • Bug 修复(不破坏现有兼容性)
  • 新功能
  • 破坏性变更
  • 文档更新
  • 重构
  • 性能优化
  • 测试更新

主要改动

  • 单次目录摘要生成失败时直接传播异常,不再返回占位内容。
  • 等待所有并发批次结束,并在任一批次失败时传播异常,不再接受部分结果。
  • 最终摘要合并失败时传播异常,不再返回第一批摘要。
  • 保持 asyncio.CancelledError 的取消语义,不将取消任务视为部分成功。
  • 让 DAG 摘要异常进入现有的失败分类和重试流程。
  • 增加单次生成失败、部分批次失败、合并失败、任务取消、正常合并及 DAG 异常传播的回归测试。

测试情况

  • 已添加能够验证修复有效性的测试
  • 本地所有新旧单元测试均通过
  • 已在以下平台测试:
    • Linux
    • macOS
    • Windows

相关回归测试结果:

24 passed

已执行以下检查:

  • 目录摘要和 DAG 相关回归测试
  • Ruff 格式检查
  • Ruff Lint 检查
  • Python 编译检查
  • Git diff 空白字符检查

检查清单

  • 代码符合项目代码风格
  • 已完成代码自审
  • 复杂逻辑已通过清晰代码和测试说明
  • 已确认本次修改无需更新文档(不涉及公共 API 或用户使用方式)
  • 本次修改没有产生新的警告
  • 依赖变更已合并并发布

截图

不适用。

补充说明

本次修改不涉及文档、依赖或公共 API 变更。

相关回归测试已在本地通过。由于当前上游代码存在与本次修改无关的基线失败和环境相关失败,因此没有勾选“本地所有新旧单元测试均通过”。

@huangruiteng

Copy link
Copy Markdown
Contributor

我按当前 origin/maind16a92c6)做了独立 rebase simulation,这里有两个需要一起处理的点:

  1. PR 当前为 mergeable_state=dirty,冲突集中在 openviking/storage/queuefs/semantic_processor.py。主干已通过 fix: batch child directory overview summaries #3154 把 file/subdirectory 统一成 work_items 分批;rebase 时请保留这套 child-batching 逻辑,只把本 PR 的失败传播语义叠加上去:单次生成、任一 partial batch、最终 merge 的异常都向上传播,不恢复 placeholder/首批结果 fallback。
  2. 当前 PR 描述整体被外层 markdown ... ``` 包住,因此其中的 Fixes #3151 只是代码块文本,GitHub 不会建立 closing relation。请移除最外层代码块。

验证结果:

  • PR head 的新增 failure regression:6 passed
  • 在当前 main 上按上述方式保留 fix: batch child directory overview summaries #3154 batching 并叠加异常传播后:新增 regression 6 passed,现有 test_semantic_processor_overview_batching.py 1 passedgit diff --check 通过。
  • test_semantic_dag_skip_vectorization_does_not_schedule_tasks 在未应用本 PR 的当前 main 上也会失败,因此我没有把它归因到本 PR。

完成 rebase 和描述修正后,这个 PR 才能恢复可合并并让 #3151 自动关闭。

@wdsjjs
wdsjjs force-pushed the fix/修复目录摘要失败状态 branch from 4210d45 to dd69f16 Compare July 19, 2026 03:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

Overview generation failure silently persists "[Directory overview is not generated]" placeholder as success, with no retry

2 participants