Skip to content

CI: Temporal Conformance 的两个 skewed-zone 步骤没挂 run-with-stall-guard,mid-suite stall 烧满 30 分钟才被 cancel #4331

Description

@os-zhuang

#4298(scripts/run-with-stall-guard.mjs)把 Test Core 的 mid-suite stall 转成了带标签的快速失败(--stall-minutes 10,ci.yml:153/165),但 Temporal Conformance (live PG + MySQL) 的两个测试步骤还是裸跑:

  • Run driver-sql suite against both live servers(ci.yml:315)
  • Run the non-SQL temporal backends under the skewed process zone(ci.yml:353)

实测现场(PR #4305,连续两轮)

该 PR 的 delta 只有 packages/lint 新规则 + packages/spec 一段 JSDoc 注释;skewed-zone 步骤测的五个包(core/formula/driver-memory/driver-mongodb/service-analytics)没有一个依赖 lint,而 main 在同一时间窗同 job 3-4 分钟即绿(run 30608331534 / 30607301713)。两轮 stall 点还不一样:

  • run 1:卡在 packages/core kernel.test 执行中途,30m15s 被 cancel;
  • run 2:05:51:07 五个包全部打完 Done零输出 24 分钟,06:15 被 cancel —— 疑似 vitest/pnpm 进程句柄泄漏导致不退出。

即:与 Test Core 同款的非确定性 stall,只是发生在没有 guard 的 leg 上,于是每次都烧满 job 超时、以「The operation was canceled」收场,红得毫无信息量,还会把无辜 PR 拖红。

建议

两个步骤同样包上 node scripts/run-with-stall-guard.mjs --stall-minutes 10 -- …(与 Test Core 相同参数),让 stall 变成带日志尾巴的快速失败;run 2 的「全部 Done 后不退出」形态也值得让 guard 在子进程退出后对残留句柄兜底(如果 guard 目前只盯输出静默,这一形态正好覆盖)。

发现自 #4305 的 CI 排查,与该 PR 内容无关,故单独立此 issue。

Activity

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions