feat: complete module1 crash feature extraction pipeline
概述
本次 MR 完成了模块一“异构问题特征提取与标准化”的主要实现。
本次更新后,模块一已经可以从 description、dmesg/CrashReport、vmcore 等输入中提取宕机特征,并统一输出符合 schema 的 crash_feature JSON,供后续补丁检索、重排和解释模块使用。
主要改动
-
实现 dmesg/CrashReport 通用解析:
- 提取 crash window
- 识别 panic/oops/BUG/WARNING/KASAN/KMSAN/KCSAN/list corruption 等信号
- 解析调用栈、内核版本、任务、CPU、模块、寄存器和内存错误事件
- 推断 subsystem、panic class、bug class、failure domain
-
实现 description-only 解析:
- 从问题描述中提取函数、文件、子系统和故障类型线索
- 不伪造 description 中不存在的运行时证据
-
实现 vmcore 解析链路:
- 集成
crash获取sys、bt、ps信息 - 集成可选
drgn解析 task、锁对象、等待对象、workqueue 和 memory object - 支持仅有 vmcore 时输出 partial JSON
- 支持提供匹配
vmlinux/debuginfo时进行深度解析
- 集成
-
更新标准化 schema:
- 支持 dmesg、vmcore、description、mixed 等输入类型
- 记录 vmcore、vmlinux、source tree、debuginfo package、source package 等 artifacts
- 统一 labels、entities、runtime context、call trace、diagnostic summary、retrieval text 等字段
-
接入官方 small benchmark:
- 支持读取
proj19_small_benchmark - 为官方 case 批量生成标准
crash_featureJSON - 严格避免将 ground truth、fix commit 等答案信息写入模块一输出
- 支持读取
-
增加 syzkaller 泛化测试支持:
- 支持从 syzkaller 页面导入真实 crash report
- 用作外部泛化测试,不与官方 benchmark 指标混算
-
新增模块一交互式 CLI:
- 官方数据集批量提取
- 官方数据集评估
- 单个 dmesg/CrashReport 解析
- 单条 description 解析
- 单个 vmcore 解析,可选提供 vmlinux 符号
- syzkaller URL 导入和评估
- 模块一 release gate 检查
-
补充模块一收尾验收文档:
- 明确模块一职责边界
- 说明 vmcore 与 vmlinux/debuginfo 的关系
- 记录防污染规则、验证命令和当前验收状态
验证结果
单元测试通过:
.venv/bin/pytest -q tests/test_dmesg_parser.py