Skip to content

Master CI test lanes red: storage/wire-roundtrip test failures block all PR merge verdicts #4081

Closed

Description

@ranxianglei

来源: #3993 分析 Codex catalog 临时故障回退问题时,为 PR #3996 核对 CI 基线时发现

查重: 无(检索 open/closed issue 与 PR:当前失败签名无对应条目;#3994/#3995 是 lifecycle-ledger-guard 台账红风暴,根因不同且已关闭修复)。

现象: master HEAD 56a0f5a 的 CI test 分片红灯,与任何在途 PR 无关。PR #3996 头部同样红,但失败项是完全相同的测试家族——判定为基线问题,非该 PR 引入。

失败签名(2026-10-21 观察,ubuntu/windows × node22/24 多个分片复现):

  1. bare-id loadSync hydrates a pooled envelope when the unified index misses (#3769 flake) — tests/issue3769-pooled-bare-load.test.ts:115,ERR_ASSERTION expected:true actual:undefined(PR 头 ubuntu22-s1 / win22-s1 / ubu24-s1 三个平台分片均现)
  2. upgraded pre-fold-gate state keeps rotation-hidden orphans hidden end-to-end (#3769) — tests/issue3769-upgrade-compat.test.ts:179(同上分片)
  3. view-latch discipline: quiet turns replay latched bytes verbatim (arbitrary texts) — master 头 ubuntu 22/3 分片
  4. wire-anthropic round-trip: block order + payload preserved (same-role pairs) 与 wire-anthropic round-trip: thinking keeps its own message after same-role group (cross-message order) — master 头 ubuntu 22/2 分片
  5. generic append-only stability: arbitrary inputs over assignRefs + renderVisibleRefs 以 not-ok 形态出现且带 # SKIP no SMT solver available (set VERIF_PYTHON or VERIF_SOLVER_CMD)(master 22/2 与 PR 头 ubu24-s1)——SMT solver 缺失时该验证测试的 skip 被计为失败,harness 行为本身存疑

影响: 任何 PR 都拿不到全绿 CI 判定,合并决策被整体阻塞(当前直接阻塞 PR #3996 的合并判定;此前 lifecycle-ledger 红风暴 #3994 也是同类阻塞)。

建议方向: 逐项 triage——① 在干净 master 上单独重跑各失败文件,区分 flake 与真实回归;② 确认回归的按机制归并修复(本 issue 内以子缺陷清单管理,不拆散);③ 核查第 5 条:CI 环境是否应提供 VERIF_PYTHON/VERIF_SOLVER_CMD,以及 skip 是否应计为失败(若是 harness 缺陷则一并修)。同一症状(master test lane 红)按政策归并为这一个 issue。

Activity

  1. ranxianglei commented on Oct 21, 2026

    @ranxianglei
    OwnerAuthor

    (ai: vllm-qwen/qwen3.8-27b)

    补充签名 1 的一个新平台变体(#4077 存储模式 pin 合入后才可见,观察自 PR #4044 变基后的头 69dcac9,run 39536538337):

    • tests/issue3769-pooled-bare-load.test.ts 现在只在 Windows 分片红,且失败点不在 hydration 断言(:119),而在它自己的清理行(:112)——rmSync(dir/index.db, {force:true}) 抛 EBUSY: resource busy or locked, unlink '…\bili-pool-store-*\index.db'。
    • 成因:full 模式钉死后 store1 真正打开了 index.db(node:sqlite)并持有句柄到 finally。Linux 允许 unlink 打开中的文件;Windows 不允许。pin 之前(legacy 模式)store1 根本不打开 index.db,rmSync 静默空转,失败才表现为后面的 :115 hydration miss——所以原风暴里看不到这个变体。
    • 已在 PR [PR] fix: stale fold ledger after model switch — attribute the failure so the breaker offers acp_status #4044 分支上以独立标注 commit 修复(rm 前先 store1.closeQuietly();flushSync 已提交记录,phase 2 验证内容不变):69dcac950。该 PR 先合入则此变体消失;否则凡含该文件的 Windows 分片会持续红。

    同一次运行中签名 2(upgrade-compat)全分片通过;签名 3–5 维持现状,由 #4083/#4088 跟踪、在途修复 PR #4084/#4089 处理。

  2. ranxianglei commented on Oct 21, 2026

    @ranxianglei
    OwnerAuthor

    (ai: zhipuai-lb/glm-5.3)
    关闭:两个签名都已修复、master 已绿。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions