Skip to content

[R2][可靠性] 为hosted命令超时增加脱敏的最终输出边界 #158

Closed

Description

@JavaZeroo

目的与真实前置

#81已多次记录PS5.1 preflight原10s的command_deadline,但只公开了invoking/timed_out,无法判断是否捕获到命令正文的固定READY marker。旧artifact仅保留summary,没有私有stdout/stderr,不能追溯补造。本项仅增加执行后脱敏输出观测,不改原命令、10s等预算、启动顺序、严格marker oracle或最终成功/失败;不warmup/重试,不声称定位了旧根因。

现 tools/prepare_hosted_shells.py 已将命令stdout/stderr写入固定私有目录、GO worker及Job清理已有明确边界,可独立开始。parent communicate(GO)会关闭stdin,不把stdin悬挂当既定原因。父项#81,关联#38。

完成条件

  • 在parent的worker已reap且自有Job清空可验证后,只读取固定白名单命令对应私有流;清理/写入者状态不足时保持unknown,不把缺失文件当0或false。只读每流最多65537B,超限/读取异常/不稳定都降级自身观测。
  • 公开仅固定枚举状态、可信0..65536字节计数及stdout固定ASCII完整marker行true/false/null;支持起始UTF8 BOM/CRLF。无marker定义的命令明确not_applicable/unknown,不猜marker。禁止输出文字/片段/绝对路径/PID/异常字符串。
  • marker外有私密文字仍只能导出数量/布尔,且原严格启动oracle继续拒绝多余内容。捕获marker只证明最终流中有此完整行,不证明在10s截止前出现;未见marker不证明引擎未启动或进程未创建。
  • 观测读取/解析/发布错误不能覆盖原command_deadline、worker_deadline、cleanup_failed或原成功;旧schema/消费者兼容,历史summary/结果原件不改。未知step/命令不能构造任意读取路径。
  • 真实文件seam纯反例先red→green:向传给run_command的stdout写marker再模拟TimeoutExpired、空/部分/子串marker、缺失/超限/读取异常、未reap/Job非0、成功/非0/worker期限、观测失败保持原判定;不得用实现调用计数代替结果。
  • 相关工具回归、双轴审查通过后push/合main,现有CI自动提供后续实际观测。未出现新真实超时就只算观测交付,不重跑旧job或本机hosted setup取样;[R2][CI] 定位 hosted shell 准备超时并保留子命令边界 #81/#38及旧原因继续开放。

本项无新产品架构/依赖/验收容差,不把CI诊断窗口变成用户批准的性能门槛。只在既有scope内补证据。

main整合与观测工具结项

PR159已以 7de84deea8e314244af7e564b7c05d8354512cb0 合入main,d63be029实现、87deb48测试及eca88d2发布均已验证为main祖先。最终两轴均0,纯/mock普通/-O各32/32。当前发布六工作流均success/attempt1;PR默认Windows59/59、288.20s/Linux39/39、15.98s。真实hosted5步骤/10命令/20流输出观测成立,PS51 stdout29B/stderr0/完整marker=true;artifact12853669829(1420B) SHA c11bdc9c34571bc1ed009a1965c34c3aa1c0d4714dc0007aa41bdc14b5dfd315已核对。该CI没有新真实deadline;只按观测工具交付关闭本项,旧#81/#38原因仍unknown,不重跑旧job或回填marker状态。

Activity

  1. JavaZeroo commented on Oct 28, 2026

    @JavaZeroo
    OwnerAuthor

    已发布 Draft PR159,HEAD eca88d280233a817cbb5ec63f4d2dcb21816487b。真实文件+run_step seam red39921c1→green d63be02;测试源87deb48普通/-O各32/32、0skip,新增10个边界。9个原命令/worker/guard/oracle函数及schema/budget对照未变;旧两CI的8份原件前后未变。公开摘要SHA256 5a2d1b489f29605817b613734ba7c3aa66fa9580f633e8fb674571228e7b6dd3,不含raw文本/路径/PID。仅纯/mock验证,未运行hosted setup/PS/WSL/真实Job API进程或重跑旧job。没有新真实deadline或旧根因结论;等待主代理两轴/当前HEAD CI,PR仍Draft、未合并,本项及#81/#38保持open。

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

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions