Commit 7bb69662 7bb69662ae2eda0aff13b9fa460f0a55b1010f20 by cnb.bofCdSsphPA

Capture the unexpected build-index exit so the next session starts from failure analysis

Constraint: Both observable and legacy build-index jobs exited without producing reference_* or evaluate artifacts
Rejected: Keep treating the run as slow linear progress | no longer matches the fresh ps/pgrep evidence
Confidence: high
Scope-risk: narrow
Directive: Start the next cycle with build-index exit-path diagnosis before launching more long runs
Tested: Verified ps/pgrep show no active build/evaluate process; verified observable directory still only has chromaprint progress/cache files; reviewed updated handoff docs
Not-tested: No root-cause reproduction or fix yet
1 parent cdf33bb2
...@@ -74,30 +74,24 @@ ...@@ -74,30 +74,24 @@
74 74
75 ## 5.5 最新真实 FMA / chromaprint 运行态(2026-06-02) 75 ## 5.5 最新真实 FMA / chromaprint 运行态(2026-06-02)
76 76
77 ### 当前最新快照(14:25 UTC) 77 ### 当前最新快照(15:09 UTC)
78 78
79 - 远程同步基线:`bc6d07afbd1e31d3956d20e35c20c424bc21ba99` 79 - 远程同步基线:`cdf33bb`
80 - 已推送完成: 80 - 当前已不是“进程仍在运行”的阶段,而是:
81 - chromaprint `_find_peaks()` 等价优化 81 - observable `PID=431703` 已退出
82 - chromaprint 建索引 observability 82 - legacy `PID=424691` 已退出
83 - 新 session 的主要监控对象应切到: 83 - observable 当前只留下:
84 - `PID=431703`
85 - `/tmp/chroma_index_observable_smoke/chromaprint_progress.json`
86 - `/tmp/chroma_index_observable_smoke/chromaprint.pkl` 84 - `/tmp/chroma_index_observable_smoke/chromaprint.pkl`
87 - `2026-06-02 14:25:32 UTC` 证据: 85 - `/tmp/chroma_index_observable_smoke/chromaprint_progress.json`
86 - 最后进度停在:
88 - `status=building` 87 - `status=building`
89 - `refs_done=1740/8000` 88 - `refs_done=4420/8000`
90 - `elapsed_sec=1385.4` 89 - 当前仍未出现 `reference_*``evaluate.py`
91 - `eta_sec=4984.254` 90 - 因此下一轮工作重心必须切到:**排查 build-index 异常退出**,而不是继续把它当作纯线性慢任务。
92 - `hashes=229127` 91 - 下一次值得提交的事件:
93 - `postings=1510952` 92 1. 找到明确失败证据/退出原因
94 - 当前尚未出现 `reference_*``evaluate.py`,因此**还不能输出最终 accuracy 结论** 93 2. 成功小样本复现并补日志
95 -`PID=424691` 真实 FMA 全量 build-index 进程仍在,但它是 observability 改动前启动的旧路径;不要把它当作新代码验证来源。 94 3. 修复后重新跑到 `reference_*``evaluate.py`
96 - 下一次值得提交的事件只应是:
97 1. `chromaprint_progress.json status=complete`
98 2. `reference_*` 文件出现
99 3. `evaluate.py` 启动
100 4. 或明确失败
101 95
102 ## 6. 高风险注意事项 96 ## 6. 高风险注意事项
103 97
......
1 ## 2026-06-02 15:09 UTC / build-index unexpected exit checkpoint
2
3 - 新鲜证据:observable 与 legacy 两个 `build-index` 进程都已退出
4 - `ps -p 431703``ps -p 424691` 均无存活进程
5 - `pgrep -af 'run_demo.py build-index|evaluate.py ...'` 未发现接续进程
6 - observable 目录仍只有:
7 - `chromaprint.pkl`
8 - `chromaprint_progress.json`
9 - `chromaprint_progress.json` 最后状态停在:
10 - `status=building`
11 - `refs_done=4420/8000`
12 - 当前仍未出现:
13 - `reference_*`
14 - `evaluate.py`
15 - 结论:当前已从“长时间线性推进”切换为“需要排查 build-index 异常退出”的新阶段
16
1 ## 2026-06-02 14:25 UTC / restart-package handoff refresh 17 ## 2026-06-02 14:25 UTC / restart-package handoff refresh
2 18
3 - 交付基线刷新为:`bc6d07afbd1e31d3956d20e35c20c424bc21ba99` 19 - 交付基线刷新为:`bc6d07afbd1e31d3956d20e35c20c424bc21ba99`
......
1 # Changelist / 2026-06-02 1 # Changelist / 2026-06-02
2 2
3 ## 本次补充交付(2026-06-02 14:25 UTC) 3 ## 本次补充交付(2026-06-02 15:09 UTC)
4 4
5 ### 目标 5 ### 目标
6 在当前长时间 `build-index` 尚未结束前,先把**可重启、可续跑、可判断阶段切换**的交付包固化下来 6 把当前状态从“仍在稳定推进”升级为“已确认异常退出、需要排查”的交接包
7 7
8 ### 本次纳入交付的内容 8 ### 本次纳入交付的内容
9 9
10 | 类别 | 内容 | 10 | 类别 | 内容 |
11 |---|---| 11 |---|---|
12 | 代码 | chromaprint 峰值扫描等价优化;建索引进度可观测化 | 12 | 证据 | `PID=431703``PID=424691` 均已退出 |
13 | 证据 | `/tmp/chroma_index_observable_smoke/chromaprint_progress.json` live checkpoint | 13 | 状态 | observable 目录仍停在 `chromaprint_progress.json + chromaprint.pkl` |
14 | 风险 | 没有 `reference_*`,没有 `evaluate.py`,没有明确 traceback |
14 | 文档 | `CHANGELOG``changelist``delivery handoff``session handoff``AGENT memory` | 15 | 文档 | `CHANGELOG``changelist``delivery handoff``session handoff``AGENT memory` |
15 | 交接 | 明确旧 FMA 进程与新 observable 进程的区别 |
16 16
17 ### 文件级变更 17 ### 文件级变更
18 18
19 | 文件 | 说明 | 19 | 文件 | 说明 |
20 |---|---| 20 |---|---|
21 | [./CHANGELOG.md](./CHANGELOG.md) | 补记本次 restart package 交付 | 21 | [./CHANGELOG.md](./CHANGELOG.md) | 补记 build-index 异常退出 checkpoint |
22 | [./delivery-handoff-2026-06-02.md](./delivery-handoff-2026-06-02.md) | 重写为当前最短接管包 | 22 | [./delivery-handoff-2026-06-02.md](./delivery-handoff-2026-06-02.md) | 顶部改写为异常排查接管包 |
23 | [./session-handoff.md](./session-handoff.md) | 顶部快照切到 `bc6d07a + observable chromaprint` | 23 | [./session-handoff.md](./session-handoff.md) | 顶部快照切到“进程已退出、无下游产物” |
24 | [../AGENT.md](../AGENT.md) | 更新长期记忆,避免新 session 误判当前阶段 | 24 | [../AGENT.md](../AGENT.md) | 更新长期记忆,避免新 session 误判为仍在运行 |
25 25
26 ### 当前最重要的 fresh evidence 26 ### 当前最重要的 fresh evidence
27 27
28 - 远程基线:`bc6d07afbd1e31d3956d20e35c20c424bc21ba99` 28 - 观测时间:`2026-06-02 15:09:19 UTC`
29 - 观测时间:`2026-06-02 14:25:32 UTC` 29 - `ps -p 431703`:无存活进程
30 - 观测对象:`/tmp/chroma_index_observable_smoke/chromaprint_progress.json` 30 - `ps -p 424691`:无存活进程
31 - 状态: 31 - `pgrep -af 'run_demo.py build-index|evaluate.py ...'`:未发现接续进程
32 - observable 目录仅有:
33 - `chromaprint.pkl`
34 - `chromaprint_progress.json`
35 - 末次 progress:
32 - `status=building` 36 - `status=building`
33 - `refs_done=1740/8000` 37 - `refs_done=4420/8000`
34 - `elapsed_sec=1385.4` 38 - 未出现:
35 - `eta_sec=4984.254` 39 - `reference_*`
36 - `hashes=229127` 40 - `evaluate.py`
37 - `postings=1510952`
38 - 已确认:新代码路径会持续写出 `chromaprint_progress.json``chromaprint.pkl`
39 - 未确认:`reference_*``evaluate.py`、最终 report
40 41
41 ### 重要决策 42 ### 重要决策
42 43
43 1. 现在**不再**重复记录每一次 `refs_done` 的线性增长。 44 1. 当前已不应继续把它描述成“仅仅线性慢”。
44 2. 下一个值得再次提交的节点只应是: 45 2. 下一轮工作应转向 **build-index 异常退出排查**
45 - `chromaprint` 完成 46 3. 新提交已经有意义,因为状态从“运行中”变成了“已退出且无下游产物”。
46 - `reference_*` 文件出现
47 - `evaluate.py` 启动
48 - 或明确失败
49 3. 旧的 `PID=424691` 只作为背景运行态,不作为新 observability 改动验证。
50
51 ### 重启后的直接待办
52
53 1. 查看 [./session-handoff.md](./session-handoff.md)
54 2. 检查 `PID=431703` 是否仍在运行
55 3. 监控 `/tmp/chroma_index_observable_smoke/`
56 4. 出现阶段切换后,再回写文档并提交推送
......
1 # Delivery Handoff / 2026-06-02 1 # Delivery Handoff / 2026-06-02
2 2
3 ## 本次交付包(2026-06-02 14:25 UTC) 3 ## 本次交付包(2026-06-02 15:09 UTC)
4 4
5 ### 交付结论 5 ### 交付结论
6 6
7 这次应交付的是一套**可直接续跑的工程包**,而不是最终评测分数 7 这次新增的关键交付,不再是单纯的进度观察,而是一个**新的异常状态检查点**
8 - 远程基线已同步到:`bc6d07afbd1e31d3956d20e35c20c424bc21ba99` 8 - 远程基线已推进到:`cdf33bb`
9 - chromaprint 热点优化与可观测性增强已提交并推送 9 - observable chromaprint smoke 与 legacy 全量 FMA `build-index` 进程都已退出
10 - 当前最重要的真实运行证据来自 **可观测 FMA build-index smoke** 10 - 但两者都**没有**进入 `reference_*` / `evaluate.py`
11 - 还没有进入 `evaluate.py`,因此**暂不输出最终准确率结论** 11 - 因此下一 session 的首要任务,已从“盯进度”切换为“排查 `build-index` 异常退出”
12 12
13 ### 当前最新事实 13 ### 当前最新事实
14 14
15 #### 已交付代码能力 15 #### observable 路径
16 - `acr-engine/src/engines/chromaprint_matcher.py` 16 - 原进程:`PID=431703`
17 - `_find_peaks()` 改为 `sliding_window_view` 等价实现 17 - 最后观测时间:`2026-06-02 15:09:19 UTC`
18 - 保持 hash 输出一致的前提下,单样本约 `2.02x` 加速 18 - 当前 `ps -p 431703`:无存活进程
19 - `acr-engine/run_demo.py` 19 - 当前目录仅有:
20 - 支持 `--chromaprint-checkpoint-every-refs` 20 - `chromaprint.pkl`
21 - chromaprint 建索引阶段新增:
22 - `chromaprint_progress.json` 21 - `chromaprint_progress.json`
23 - 周期性 `chromaprint.pkl` partial cache 持久化 22 - 最后 progress 状态:
24
25 #### 当前最可信 live evidence
26 - 可观测进程:`PID=431703`
27 - 命令:
28
29 ```bash
30 cd /workspace/acr-engine
31 /usr/local/miniconda3/bin/python run_demo.py build-index \
32 --data data/external_smoke/fma/manifests \
33 --model data/external_smoke/fma_models_smoke/best_model.pt \
34 --output /tmp/chroma_index_observable_smoke \
35 --device cpu \
36 --checkpoint-every-refs 10 \
37 --chromaprint-checkpoint-every-refs 10 \
38 --resume
39 ```
40
41 - `2026-06-02 14:25:32 UTC` 最新状态:
42 - `status=building` 23 - `status=building`
43 - `refs_done=1740 / 8000` 24 - `refs_done=4420 / 8000`
44 - `elapsed_sec=1385.4` 25 - `elapsed_sec=3964.861`
45 - `eta_sec=4984.254` 26 - `hashes=357373`
46 - `hashes=229127` 27 - `postings=3774363`
47 - `postings=1510952` 28 - 当前**仍未出现**
48 - `chromaprint.pkl=16787221 bytes`
49 - `chromaprint_progress.json=230 bytes`
50 - 当前**尚未出现**
51 - `reference_progress.json` 29 - `reference_progress.json`
52 - `reference_embs.partial.npy` 30 - `reference_embs.partial.npy`
53 - `reference_ids.partial.npy` 31 - `reference_ids.partial.npy`
...@@ -55,36 +33,31 @@ cd /workspace/acr-engine ...@@ -55,36 +33,31 @@ cd /workspace/acr-engine
55 - `reference_ids.npy` 33 - `reference_ids.npy`
56 - `evaluate.py` 34 - `evaluate.py`
57 35
58 #### 旧真实 FMA 全量进程如何看待 36 #### legacy 全量 FMA 路径
59 - 旧进程 `PID=424691` 仍在跑 `build-index` 37 - 原进程:`PID=424691`
60 - 但它启动于本次 observability 改动之前 38 - 当前 `ps -p 424691`:无存活进程
61 - **不要**把它当作新可观测代码路径的验证来源 39 - 当前目录仍只有:
40 - `/tmp/fma_real_smoke_stopcheck/fma_index_smoke`
41 - 仍未看到 index artifact 或 `evaluate.py`
42
43 #### 当前判断
44 - 这不再是“CPU-only 长时间构建但仍在推进”的状态。
45 - 现在更像是:**`build-index` 在 chromaprint 阶段中途退出,但没有留下显式下游产物**
62 46
63 ## 新 session 接管顺序 47 ## 新 session 接管顺序
64 48
65 1. 先看 [./session-handoff.md](./session-handoff.md) 49 1. 先看 [./session-handoff.md](./session-handoff.md)
66 2. 再看 [./changelist-2026-06-02.md](./changelist-2026-06-02.md) 50 2. 再看 [./changelist-2026-06-02.md](./changelist-2026-06-02.md)
67 3. 然后只盯住以下 4 个事件: 51 3. 然后优先做 3 件事:
68 1. `chromaprint_progress.json` 变成 `status=complete` 52 1. 复盘 `run_demo.py build-index` 的退出路径与异常处理
69 2. 任一 `reference_*` 文件出现 53 2. 检查是否存在未捕获 OOM / shell termination / silent failure
70 3. `evaluate.py` 启动 54 3. 在更小样本上复现“chromaprint 中途退出但无后续文件”的行为
71 4. 进程报错退出
72 55
73 ## 当前卡点 56 ## 当前卡点
74 57
75 1. 当前环境仍是 **CPU-only**,建索引耗时长。 58 1. 关键进程已经退出,但没有明确 traceback 留存。
76 2. 当前还处于 chromaprint 阶段,尚未进入 embedding / evaluate。 59 2. observable 与 legacy 两条路径都停在“没有 `reference_*` / 没有 `evaluate.py`”的中间态。
77 3. 工作树含大量数据噪音,提交时必须只显式暂存文档/代码文件。 60 3. 工作树仍有大量数据噪音,提交时必须只显式暂存文档/代码文件。
78
79 ## 重启后最短检查命令
80
81 ```bash
82 date -u '+%Y-%m-%d %H:%M:%S UTC'
83 cat /tmp/chroma_index_observable_smoke/chromaprint_progress.json
84 find /tmp/chroma_index_observable_smoke -maxdepth 1 -type f -printf '%f %s bytes\n' | sort
85 ps -p 431703 -o pid,etimes,time,%cpu,%mem,stat,command
86 pgrep -af 'evaluate.py --data data/external_smoke/fma/manifests'
87 ```
88 61
89 ## 本次交付包含的关键文档 62 ## 本次交付包含的关键文档
90 63
......
...@@ -5,24 +5,19 @@ ...@@ -5,24 +5,19 @@
5 5
6 ## 一页结论 6 ## 一页结论
7 7
8 ### 最新交付快照(2026-06-02 14:25 UTC) 8 ### 最新交付快照(2026-06-02 15:09 UTC)
9 9
10 - 当前远程同步基线:`bc6d07afbd1e31d3956d20e35c20c424bc21ba99` 10 - 当前远程同步基线:`cdf33bb`
11 - 已正式交付的最新代码能力: 11 - 当前最重要的新事实:**两个 `build-index` 进程都已退出**,且没有进入 `reference_*` / `evaluate.py`
12 - chromaprint `_find_peaks()` 等价加速 12 - observable 路径:
13 - chromaprint 建索引进度可观测化 13 - 原 PID:`431703`
14 - `run_demo.py --chromaprint-checkpoint-every-refs` 14 - 当前 `ps -p 431703`:无存活进程
15 - 当前最重要的 live evidence 不再是旧全量 FMA 进程,而是**新的 observable chromaprint smoke** 15 - 当前目录仅有:`chromaprint.pkl``chromaprint_progress.json`
16 - `PID=431703` 16 - 最后状态:`status=building`, `refs_done=4420/8000`
17 - 输出目录:`/tmp/chroma_index_observable_smoke` 17 - legacy 全量 FMA 路径:
18 - `2026-06-02 14:25:32 UTC` 最新观测: 18 - 原 PID:`424691`
19 - `status=building` 19 - 当前 `ps -p 424691`:无存活进程
20 - `refs_done=1740 / 8000` 20 - 当前目录仍只有 `/tmp/fma_real_smoke_stopcheck/fma_index_smoke`
21 - `elapsed_sec=1385.4`
22 - `eta_sec=4984.254`
23 - `hashes=229127`
24 - `postings=1510952`
25 - `chromaprint.pkl=16787221 bytes`
26 - 当前尚未出现: 21 - 当前尚未出现:
27 - `reference_progress.json` 22 - `reference_progress.json`
28 - `reference_embs.partial.npy` 23 - `reference_embs.partial.npy`
...@@ -30,13 +25,11 @@ ...@@ -30,13 +25,11 @@
30 - `reference_embs.npy` 25 - `reference_embs.npy`
31 - `reference_ids.npy` 26 - `reference_ids.npy`
32 - `evaluate.py` 27 - `evaluate.py`
33 - 旧真实 FMA 全量进程 `PID=424691` 仍在运行,但它启动于 observability 改动前,**不要作为新代码路径的验证证据** 28 - 结论:当前阶段已经从“继续观察运行中进度”切换为“排查 `build-index` 异常退出原因”。
34 - 结论:当前不是训练问题,也不是新逻辑无证据;当前只是 **CPU-only chromaprint build-index 仍在稳定推进,尚未阶段切换** 29 - 新 session 第一优先级:
35 - 下一次值得更新文档/提交的事件只有四种: 30 1. 复盘 `run_demo.py build-index` 的退出路径
36 1. `chromaprint_progress.json` 变为 `status=complete` 31 2. 查 silent failure / OOM / shell termination 证据
37 2. 任一 `reference_*` 文件出现 32 3. 用小样本复现异常并补日志
38 3. `evaluate.py` 启动
39 4. 进程报错退出
40 33
41 这是一个正在从原型向工业化推进的 **音乐 ACR / music retrieval** 项目。 34 这是一个正在从原型向工业化推进的 **音乐 ACR / music retrieval** 项目。
42 当前已经完成: 35 当前已经完成:
......