Skip to content

test: diagnose retained cumulative binaries with fixed warm resource controls - #189

Merged
Iviesever merged 1 commit into
mainfrom
codex/v5.6-fixed-binary-warm-diagnosis
Sep 13, 2026
Merged

Iviesever merged 1 commit into
mainfrom
codex/v5.6-fixed-binary-warm-diagnosis

Conversation

@Iviesever

Copy link
Copy Markdown
Owner

Single topic: bounded diagnosis, not a product fix or a replacement gate

Preregistered BEFORE new Windows measurements in #164 comment5653547739. Continue #188's HOLD review5190674100 and #164 comment5653289666. Do not change or merge #188, rerun #630/the original584-pair cumulative matrix, or execute main's old cumulative entry. This independent diagnostic does not cherry-pick #188's two entry files and is not a competing cumulative-entry PR.

Exact base: 1c565ca9f364b0bcb380565c4684ea543b449e04, base tree 96629b0d75061027ca0eacd4a5522806215b95f7.
Exact head: 8c8d21349be32363f94bb323ae1436ecae42c21d, tree 4fc13a345866c6b162f13b0b8300e5a32f80d227.
One commit, THREE added files, +559/-0. Product, original recorder/fixtures/cumulative/independent ABBA, native inventory, build pipeline, VERSION5.5.0 and all tags/assets unchanged. Main Native#757 attempt1 completed before this branch. Local tree and all3 remote blob hashes match the portable-tested files exactly.

Hypotheses and immutable experimental objects

H1: root CPU/cycle/IO accounting can distinguish extra MQB root work from an external-elapsed-only observation; it cannot identify a disk/OS/antivirus cause. H2: differences depend on parallel inspection (auto vs -j1), with common129 and small2 controls. H3: resource observation itself changes elapsed or later calls, requiring same-binary ON/OFF controls.

Reuse ONLY original cumulative run34756138330/artifact10317617795, whole ZIP SHA256 d70a0478c8b060e1da1b64e1361ec9ee69978277eed3d2c671149cff372c4530. Actual baseline exe SHA256 46a3fc9fd4826b16f5130895438a82601d6531a29000982720f88cfc94fcc95f; candidate deab6c9dea5342f3a83ca79e2be3f51d483b03a8f045fbfa8411a8e6ad645c8c. No rebuild in the diagnostic workflow. These are NOT #630's missing historical executable pair.

The original private12940 pairs remain flagged (+3.4128ms/+6.8036063%). Descriptive AB/BA20-pair medians are +3.1306/+3.6129ms; neither proves/removes a root cause. Cold common129 tails and #630's missing historical binary/OS identity are separate unresolved questions. This round narrows only the warm path.

Fixed new diagnostic and observer boundary

3 fixtures(small2/common129/private129) × jobs(auto,1), 6 groups. Twelve blocks/group; each has A-off/B-off/A-on/B-on in a four-treatment Williams design. Each treatment occupies each position3 times, and each distinct within-block ordered predecessor pair occurs3 times. Six group orders rotate across blocks. 288 timings-OFF diagnostic calls / 144 ON resource records, plus6 prime and24 separate before/after instrumented audits = 318 MQB calls. Four fixed Python controls: idle, CPU busy,1MiB read/write, exit17/raw output. No extra/repeated score run, adaptive sampling, observation subtraction or performance release waiver.

Use unchanged compare_reporting.Recorder and cumulative fixture/audit helpers (checked against the original source archive). OFF uses original Popen unpatched, no resource queries. ON retains original launch/communicate/timeout/wait/exit semantics and borrows that root's original CPython-owned handle after context exit/wait; GetProcessTimes/GetProcessIoCounters/QueryProcessCycleTime and callback overhead are INCLUDED in ON external elapsed. Patch restoration and exceptions tested. Windows CPython3.12.10 is required; actual Python executable/subprocess source hashes recorded. No reopen by reusable PID, changed priority/affinity, new Job/cancellation, ETW or residency.

CPU times sum all root threads and may exceed wall; cycle counts are not converted to elapsed. IO counters include root operations, not physical-disk/path traces or complete process-tree accounting. OFF metrics remain null, not zeros. ON query/control failure blocks diagnostic validity and is retained, without replacing original child errors.

Initial source archive, fixture-source archive/hashes, fixed plan, old artifact and actual reused exe, whitelisted environment/OS/CPU/Python identity saved; verbose separate audits identify the selected compiler/linker for hashes. Raw318 calls, source/helper identities, partial calibration and measurement failures, full unadjusted values, pre/post state metadata retained. Fixture build outputs/PDB/IDB are not uploaded. Metadata equality is not a durable transaction/concurrent-writer proof.

Gates, before FIRST Windows execution

  1. Exact base/head/test-merge/tree and complete diff; full Windows Debug and Release original79-program execution, self-host Stage0/1/2, exact runtime package/checksum/installer lifecycle and documentation. Missing/skipped work is not a pass. Keep Draft pending substantive review.
  2. Portable10 tests, including six resource rejection mutations, fixed ordering/budget/precedessor balance, OFF no-query, real child exit17/stdout/stderr retention, launch/timeout/query failures, first-attempt/no-overwrite, archive mismatch and unchanged raw adverse/observer summaries. These are harness tests, NOT local MSVC evidence. Local originalZIP/binary/helper verification passed.
  3. New Windows diagnostic must complete its fixed288/144/318 and4 controls. Every scored call retains raw outputs/exit/expected warm report;24 audits require all compile/link hits and no tool/cache writes. Full counters/breakdown/hit-miss vectors must match across A/B and before/after within version, and fixture build-state metadata remain unchanged. Selected tools and reused binaries must retain initial hashes. All new differences are descriptive diagnostic evidence only; historical_cause_resolved/release_authorized/historical_risks_cleared remain false.
  4. Separate original observer-OFF per-PR independent ABBA19×4, comparing this PR base/head, not the archived diagnostic pair. Preserve76 pairs and equality of all72 available full counter/breakdown/hit-miss vectors; external no-op blocker remains conjunction >+1ms AND >+10% paired medians. The perf: title requests this original gate, not an optimization claim. Its old binary-retention gap is not silently fixed here or filled with diagnostic binaries.
  5. Any unmet gate => HOLD; no same-head retries/new-until-green/threshold change. New diagnostic results do NOT clear perf: validate pinned v5.5 cumulative evidence entry and first-failure retention #188/#630, cumulative private129, common129 cold tails or historical test: attribute link-cache save work to nested subspans #172/test: calibrate native PDB failure and observer evidence #176 C1041, test: validate real scheduler drain on accepted PDB evidence baseline #170/refactor: separate foreground artifact execution from build scope #180#599/#625/#627 adverse samples. Locate a concrete product problem before a separately reviewed fix/revert experiment.

No default CLI cancellation/write-lock, complete transaction, recovery, sessions/residency, VERSION/release or historical tag/asset changes. #164's v6.0 long-term route remains intact; v5.6.0 is not authorized for publication.

…factorial

Keep the original #188 head and failed #630/cumulative release gates unchanged. Add only a bounded diagnostic harness, portable contracts and an isolated first-attempt workflow. Reuse the original archived binaries and unchanged recorder/helpers; retain observer-off controls and all adverse samples. Preregistered in #164 comment5653547739. No product, VERSION or publication changes.

Copy link
Copy Markdown
Owner Author

首次暖路径诊断与独立 ABBA 原始证据已核对;仍待完整 native/self-host 验收

精确 base 1c565ca9f364b0bcb380565c4684ea543b449e04,head 8c8d21349be32363f94bb323ae1436ecae42c21d,tree 4fc13a345866c6b162f13b0b8300e5a32f80d227;test-merge efa3c65948708ce88116ecd455e5ae10f9f5d2ae 的同树和两个精确父提交已读取核对。只有预登记的三个新增文件 +559/-0。本评论不批准合并或解除历史 HOLD。

新诊断 #1 / run34760155798 / job103731458159

artifact10319235407,8,203,336 bytes,SHA256 7ea78dc1c63f05e1d2810374eb6bafc54e36ecac437a2106c8b4f048076f9c04,661成员。首次WindowsCPython3.12.10运行完成,10项portable测试与4项真实Python子进程校准通过;校准exit17原stdout/stderr保留。新研究中不重建两端MQB,归档实际exe逐字节等于原累计run34756138330那一对;原wholeZIP/hash、原helpers、本PR源码均校验。

独立只读审计重算 318次MQB调用 / 288次固定评分 / 144份ON根进程资源 / 144份OFF资源不可用;636份原stdout/stderr、timing记录与hash、精确源列表/argv/cwd、4格Williams顺序、区组轮转、原始退出码及288次三行no-op报告逐项对应。24次分离audit完整命中,无工具派发/缓存写入;12组跨版本与12组同版本pre/post的完整cache/counters/counter_breakdown一致,3夹具构建状态路径/size/mtime前后一致。自动并行audit实际background_threads为small1、common/private3;-j1为0。未把audit或状态metadata扩大成评分调用零后代、文件字节快照或事务证明。

OFF配对中位Δms OFF配对中位Δ% ON配对中位Δms A观察ON-OFF中位ms B观察ON-OFF中位ms
small auto +0.13415 +1.48882 -0.07275 -0.13635 -0.1118
small j1 -0.11615 -1.19007 -0.05725 -0.01285 -0.17595
common129 auto -0.01185 -0.04491 +0.3062 +0.17815 +0.0166
common129 j1 +0.13565 +0.41896 -0.2752 +0.28415 -0.2945
private129 auto -0.1562 -0.56495 -0.42205 +0.1612 +0.524
private129 j1 -0.0555 -0.15615 -0.31985 +0.2111 +0.67535

每格12对所有原值/不利值均保留。例如private-auto OFF最大+3.361ms、ON最大+5.0761ms;common-j1 OFF最大+5.8499ms。观察差值包含真实相邻执行/环境变化及包装成本,不能当通用固定开销;没有观察扣除、AA扣除或新发布阈值。

这次资源记录能说明什么,不能说明什么

144份ON全部通过三个API查询;保留原句柄的pid+creation/exit身份不同且生命周期顺序一致。CPU时间实值的最大公约步长156250×100ns=15.625ms;不能用其0值/中位数给几毫秒退化作精确CPU归因。cycles不换算wall;private-auto的配对cycle差中位+624210.5 cycles(配对百分比中位+0.52889%),j1为-776728 cycles(-0.94249%),并非稳定的同方向大幅额外工作证据。

每个ON配对中,read/write操作次数与传输bytes、other操作次数均相等;other_bytes候选固定多2bytes,完整保留,不称I/O六项完全相等,也未擅自归因到路径/系统/磁盘。根IO不是物理磁盘或文件路径追踪,stdout的一次写入不是缓存写入。CPU/IO不覆盖后代进程。资源查询envelope单次约0.06–0.13ms,也不能从OFF样本减掉它。

新private-auto两端OFF绝对中位27.25805/27.1589ms,旧累计51.75685/54.18715ms;相同exe在新上下文得到不同结果,不是产品修复、旧+3.4128ms flag失效或环境根因已定位的证明。原样保存两批。没有冷构建诊断,旧common129冷尾没有被本研究解释。

独立 Performance #631 / run34760155781

artifact10318836396,SHA256 8ba0c6684ca292c1bac9bd8b98761e200ef23863eb4a97d5b953373eeeea926a。原19×4,76对完整;全部72组可用cache/counters/breakdown/hit-miss一致。4对external内部指标仍不可用。

外部OFF no-op配对原差:+0.6015、+0.1319、-0.257、+0.1639ms;中位 +0.1479ms/+1.5708099%,未越过既定同时>1ms且>10%门槛。所有18个instrumented场景保留,包括target-scale-single-tu中位+8.314ms/+8.2671232%、public-header尾+66.348ms/+75.3158594%、discovery-header尾+56.914ms/+63.0304775%。本PR无产品变化,不记提速、零开销或#630风险豁免。独立ABBA的实际exe保存缺口仍在,诊断exe不是它的替代品。

审计自身的透明记录

本次harness-source.zip文本为CRLF,原候选源码归档为LF。首次离线审计直接以raw文本重算Git树失败;失败代码/日志保留。按仓库显式binary install.bat不变、其余确认UTF-8文本只做CRLF→LF的可逆规范化后,441文件恰好重现受审tree4fc13a;原438文件全部相同,只多三项。原ZIP字节和hash从未改动。不把这次离线审计假设错误说成Windows产品失败。

当前仍Draft;Native C++#759和完整Native Release#636尚未全部验收,不提前合并。 #188原head与#630失败、旧累计private flag、冷尾、C1041和其他历史不利证据全部继续有效。

@Iviesever Iviesever left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

实质验收:接受 #189 的诊断工具改动;不是产品修复,不解除 #188 或发布 HOLD

预登记 #164 comment5653547739;首次诊断与原始数据逐项核对见本 PR comment5653652726。本次在完整原生、自举、实际包和独立 ABBA 门槛完成后作出决定:#189 可按诊断工具小 PR 合并;旧 #630/private129/common129/C1041 等问题继续分账 HOLD,5.6.0 不放行。 这里是提交者账号下的实质 COMMENT 记录,不冒充另一位独立审查者的 APPROVE。

一、精确身份与范围

最终重读 main/base 1c565ca9f364b0bcb380565c4684ea543b449e04,head 8c8d21349be32363f94bb323ae1436ecae42c21d;tree 4fc13a345866c6b162f13b0b8300e5a32f80d227。原 test-merge efa3c65948708ce88116ecd455e5ae10f9f5d2ae 的两个精确父提交及同一 tree 已核验。单提交、仅三个新增诊断文件 +559/-0;全部原438文件及产品/原生清单/原Recorder/两种benchmark/构建与发布流程/VERSION5.5.0不变。未移植 #188 的两个累计入口文件,main 的旧累计入口没有因此迁移。

二、首次诊断:固定预算完成,没有替换历史实验

Fixed Binary Warm Diagnosis #1/run34760155798/job103731458159,artifact10319235407,SHA256 7ea78dc1c63f05e1d2810374eb6bafc54e36ecac437a2106c8b4f048076f9c04,8,203,336 bytes/661成员。已读完整原始 job 日志并下载离线核对。

原累计 run34756138330 中实际两端 EXE 逐字节复用,未重建:A 46a3fc9fd4826b16f5130895438a82601d6531a29000982720f88cfc94fcc95f;B deab6c9dea5342f3a83ca79e2be3f51d483b03a8f045fbfa8411a8e6ad645c8c。原ZIP、原helpers、当前源树及fixture输入归档校验一致。它们不是缺失的 #630 历史 EXE。

6组 small2/common129/private129 × auto/j1,各12个四格Williams区组,共 288评分调用、144份ON资源记录、144份OFF资源不可用;加6prime与24独立前后audit,318次MQB调用及636份原始输出完整。四项真实Python控制及10项portable测试通过,exit17两个原始诊断流保留。全部调用顺序/参数/工作目录/标签/退出/原报告/hash逐项对应。24audit全命中无工具与缓存写入,12组跨版本完整计数向量和12组同版本前后完整向量一致;3夹具产物路径/size/mtime前后不变。不同观察模式、评分与分离audit严格区分。

OFF配对中位Δms按 small-auto/small-j1/common-auto/common-j1/private-auto/private-j1 为 +0.13415/-0.11615/-0.01185/+0.13565/-0.1562/-0.0555;各12对原值、不利值和ON/OFF差均保留。private-auto OFF原始最大+3.361ms、ON最大+5.0761ms;common-j1 OFF最大+5.8499ms。没有新增发布阈值、删样本、AA/observer扣除或自适应补样。

三、诊断结论的限度

新private-auto OFF两端绝对中位27.25805/27.1589ms,旧累计51.75685/54.18715ms;新配对中位-0.1562ms不能撤销旧40对+3.4128ms/+6.8036063% practical flag。只能说明此次新运行上下文未重现同等幅度的差异;不能据此确认环境噪声、修复成功或排除上下文相关产品问题。

本批CPU实值粒度为15.625ms,不能用CPU为0或中位0解释几毫秒差异。private-auto cycle差中位+624210.5cycles,而j1为-776728cycles;不换算时间、也不作因果判定。72个ON配对中5项根I/O计数相等,other_bytes候选始终多2bytes,保留且不擅自归因。资源API只计根进程,不等于物理磁盘/文件路径/进程树证据。观察ON包含查询与包装成本;同程序ON-OFF还含相邻执行变化,不能作为可扣减常数。

无原评分时刻OS/ETW跟踪,无冷构建诊断;旧冷尾和C1041不由本研究解释。24分离audit不是评分样本内部工作量;状态元数据不等于逐字节或事务证明。所选Python/cl/link在Windows的hash/前后校验已记录,未归档的工具bytes不能假称离线再次重算。

四、Windows Debug/Release 与实际自举包全部完成

  • Native C++ #759/run34760155775:gate103733084851 success;Debug四配对job 103732709955/103732709940/103732710053/103732709962 的完整原始日志已逐项读取。
  • Native Release #636/run34760155776:Release四配对job 103732555663/103732555642/103732555670/103732555645 的完整原始日志已逐项读取。
  • 各配置8子片计数 8,9,9,9,10,12,11,11 = 79/79实际程序执行。保留prewrite44/recipe28/target84/batch50/domain39/map33/foreground24及原C2338/LNK2019/LNK1120等预期失败诊断;未把Release测试宿主一概当作其内部所有目标都为Release。两prepare job本轮核对的是完整步骤状态,不冒称读过其完整原日志。
  • Self-host/package job103732843447 完整原日志已读:固定seed建立Stage0后,经MQB构建Stage1,再清空构建状态由Stage1构建Stage2,后两代各实际83TU重建;安装/重装/卸载/PATH所有权与七文件包验证通过。
  • Stage1 SHA256 7e66d3cf406d3ff4917b566345216cffa10cd418ac956fedbfb2a5476edd3e65;Stage2 7732987d289cddc02e0d017a61c6de1a14416161a46daf07bffa9acefca3d8d5。不同,证明自举闭环而不是字节可复现。
  • 实际包artifact10319430229已下载独立校验:外ZIP SHA256 312b1186cbb4eb49c9173b45bd84f01a7612780752626bf8abc4beff59313244;内ZIP/sidecar 6bfda319ef390c806c32a27585f0ad1563abd7ea5fb31e1059c6e88cc0dc47f4;七文件扁平清单,AMD64 EXE字节hash等于上述已验证Stage1,VERSION5.5.0。install.bat原字节一致,其余文本仅CRLF差异。Stage2 hash来自原日志,未伪称另行下载Stage2核验。
  • Documentation #200/run34760155782/job103731457996 的完整日志:19对维护文档校验通过。publish-release job103733887866明确skipped,不计为发布。

五、本 PR 独立 ABBA 门槛通过,历史失败原样有效

Performance #631/run34760155781/job103731457961,artifact10318836396,SHA256 8ba0c6684ca292c1bac9bd8b98761e200ef23863eb4a97d5b953373eeeea926a。原始完整构建/ABBA日志已读:精确base1c/head8c、同一固定seed、两端真实Release83TU重建;原19×4=76对及72组可用cache/counters/breakdown/hit-miss全向量一致,4外部计时内部数据仍不可用。

原外部OFF no-op四对 +0.6015/+0.1319/-0.257/+0.1639ms,配对中位 +0.1479ms/+1.5708099%,没有触发事前规定的同时>+1ms且>+10%门槛。不是只看Actions success。全部19场景及不利值保留,包括target-scale-single-tu中位+8.314ms/+8.2671232%,public-header尾+66.348ms/+75.3158594%,discovery-header尾+56.914ms/+63.0304775%。本PR零产品修改,不因此称零开销或提速。这次独立重建两端EXE的原有保存缺口仍在,诊断EXE不能替代它们。

六、透明审计记录、合并纪律与下一接手点

首次离线源树审计错误地直接把Windows CRLF源码归档视为Git规范blob,失败代码/日志保留。仅修正离线规范化(确认UTF8文本CRLF→LF、显式binary install.bat保持原样),441文件精确恢复tree4fc13a,原438文件一致;原ZIP/测量数据不变。另12项有意损坏的离线证据负控均拒绝,首次错误不藏匿、不冒充Windows故障。本地Linux没有运行MSVC。交付job台账明确为转录,不冒充下载的原始日志包。

验收后拟先将标题perf:改为test:,再转Ready,以免现有ready_for_review/edited触发器对同head重复采集;原#631首次样本和门槛结果已在改标题前完成并保留。不修改原工作流、不重跑旧失败、不以skip代替原必需门槛。合并前再次核对精确base/head,使用expected-head保护;仅接收这3个诊断文件。

后续单主题应针对尚无观测的common129冷构建工具阶段/进程生命周期建立固定预算、观察OFF对照和失败时刻证据;先预登记再执行,不能把这次暖路径结果移植成冷尾解释,也不盲改并行调度器。若发现具体产品原因,另拆小修复/回退验证PR。

#188原head/Draft/HOLD与#630失败、旧累计private flag、common129冷尾、#172/#176 C1041、#170/#180#599/#625/#627不利证据全部继续有效。无默认CLI取消/写锁、完整事务、自动恢复、会话/驻留、VERSION或发布及历史tag/assets变更。#164的6.0路线保留。

@Iviesever Iviesever changed the title perf: diagnose retained cumulative binaries with fixed warm resource controls test: diagnose retained cumulative binaries with fixed warm resource controls Sep 13, 2026
@Iviesever
Iviesever marked this pull request as ready for review September 13, 2026 14:02
@Iviesever
Iviesever merged commit 7526686 into main Sep 13, 2026
19 checks passed
@Iviesever
Iviesever deleted the codex/v5.6-fixed-binary-warm-diagnosis branch September 13, 2026 14:03
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