diff --git a/deploy/prune-deploy-artifacts.sh b/deploy/prune-deploy-artifacts.sh index 14496cb..40c6a91 100755 --- a/deploy/prune-deploy-artifacts.sh +++ b/deploy/prune-deploy-artifacts.sh @@ -302,8 +302,22 @@ if [ "${1:-}" = "--self-check" ]; then # (pid 2110989 的父进程是 `pi-mail-bridge/…/src/worker.mjs`,命令行当场抓到。) # ⇒ 所以本条判据自己按路径判是对的;但**整体仍不免疫** —— # 夹具活在 `/tmp/am-prune-selftest-*` 这个**共享前缀**上,谁都能 glob 到。 - # 要真正隔离,夹具前缀必须带**每次运行唯一且不可猜**的一段(如 `$$`/`mktemp` 随机段), - # 让外部"按前缀删"删不到**别人的**。**这一条是欠账,尚未做。** + # + # ★★ 已经量到"互相踩"是**双向**的(2026-09-21 06:49,两边日志都在): + # pi 在 `wt-g2` 里跑"去掉 $T2"的变异,窗口 06:49:01→06:49:28, + # 我同时在跑一个**故意的**压力循环 `for i in $(seq 1 400); do rm -rf + # /tmp/am-prune-selftest-*; sleep 0.1; done`,窗口 06:49:22→06:49:26。 + # **两窗口重叠**,而 pi 那次读数是 **15 通过 / 8 失败**,失败清一色是 + # 【干净样本】("在线库与它的 -wal 仍在"…)—— 正是"夹具被外力删掉"的指纹。 + # ⚠️ 我**不能断定**是我打坏的(pi 自己那次变异本来也可能红),但**重叠是事实**, + # 且方向明确:**我的压力测试有可能污染了它的读数。** + # ⇒ 教训:**做"外部干扰"实验时,干扰必须是隔离的** —— 否则我为了证明 + # "别人会踩我",先去踩了别人。 + # + # ★ 补救已实测可用:`PRUNE_TMP_DIR`(`:37`)把夹具整体挪出共享前缀。 + # 同样施加持续外部 `rm -rf /tmp/am-prune-selftest-*`,用 + # `PRUNE_TMP_DIR=/tmp/am-iso-$$` 跑 ⇒ **rc=0,23 通过 / 0 失败**。 + # ⇒ **跑自检(尤其并发时)应当带上 `PRUNE_TMP_DIR`。** T2="$(mkdtree_fail)" _FIX_MINE="$T $B $T2" cat > "$T2/fake-rm" <<'FAKERM'