Skip to content

test(process): publish cleanup fixture identity before exec - #1087

Draft
franksong2702 wants to merge 1 commit into
yyjeqhc:mainfrom
franksong2702:franksong2702/process-fixture-pgid-20261012
Draft

franksong2702 wants to merge 1 commit into
yyjeqhc:mainfrom
franksong2702:franksong2702/process-fixture-pgid-20261012

Conversation

@franksong2702

@franksong2702 franksong2702 commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Linux 进程清理测试依赖 shell 启动后写入 PID 文件;capture 截止时间可能在文件已截断但 echo 尚未完成时清理进程,随后夹具读取空值或缺失文件而失败。此 PR 仅修复该测试身份发布边界:通过 pre-exec/spawn 握手记录受控 PGID,检查整个组的活进程,并加入截止时间早于 shell 夹具初始化的回归。生产进程实现、200ms capture 截止时间、输出限额及清理断言均保持不变。

与 #1010 的 Linux 空 PID 失败相关,但这是独立的上游测试夹具修复,不包含附件诊断、权限或迁移改动。确定性时序控制复现了同类 ParseIntError { kind: Empty };这不证明 #1010 原 Ubuntu amd64 CI 的实际负载或唯一根因。

验证:

  • 当前 main 基准 2159b9cdf496340d58b184bdb28d23a35a62a86e 的测试基准 blob 与此前已验证源码相同;提交后进程生产文件及测试文件与已测试候选逐字节一致。
  • 精确进程模块的 Linux arm64 离线夹具:原版3项、候选4项通过。先前2 CPU、1GiB、128进程上限、无人工负载的对照,原版和候选各重复20次,均失败0/20;本次按上游 edition 2021和匹配的libc/tempfile锁版本重新验证,候选仍0/20,原版1/20出现 capture returned with a live owned descendant(不是空PID,原因未确认)。保留两次对照,不以正常条件通过证明原CI根因已解决;这些是组件测试,不是完整 Ubuntu amd64 workspace CI 重跑。
  • 确定性延迟 shell PID 发布的原版控制:2项通过、1项空 PID 失败。仅在合成副本禁用进程组清理的负对照,候选正确报告活进程组,未弱化清理保护。
  • 人工饥饿条件(0.5 CPU及64个持续 runnable 子进程)下,原版10/10失败(8次超时、2次缺PID文件),候选3/3均超时;候选没有消除调度饥饿,未为此延长截止时间或忽略错误。
  • 补丁精确基准应用检查、diff whitespace检查及当前源码格式检查完成。

保持 Draft,不合并、不发布、不部署。新head f6ff30b101232bc3db2037ce563ff1e4738a71fa 的CI运行38204504345已到终态:success,job结论统计 {"success": 18}。Linux workspace-crates及完整native门禁通过;一次绿色CI仍不证明原#1010失败的唯一根因。真实 Host 附件导入未执行,不能将本测试修复视为附件端到端验收通过。

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant