test: diagnose retained cumulative binaries with fixed warm resource controls - #189
Conversation
…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.
首次暖路径诊断与独立 ABBA 原始证据已核对;仍待完整 native/self-host 验收精确 base 新诊断 #1 / run34760155798 / job103731458159artifact10319235407,8,203,336 bytes,SHA256 独立只读审计重算 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扩大成评分调用零后代、文件字节快照或事务证明。
每格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 / run34760155781artifact10318836396,SHA256 外部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
left a comment
There was a problem hiding this comment.
实质验收:接受 #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;Stage27732987d289cddc02e0d017a61c6de1a14416161a46daf07bffa9acefca3d8d5。不同,证明自举闭环而不是字节可复现。 - 实际包artifact10319430229已下载独立校验:外ZIP SHA256
312b1186cbb4eb49c9173b45bd84f01a7612780752626bf8abc4beff59313244;内ZIP/sidecar6bfda319ef390c806c32a27585f0ad1563abd7ea5fb31e1059c6e88cc0dc47f4;七文件扁平清单,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路线保留。
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 tree96629b0d75061027ca0eacd4a5522806215b95f7.Exact head:
8c8d21349be32363f94bb323ae1436ecae42c21d, tree4fc13a345866c6b162f13b0b8300e5a32f80d227.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 SHA25646a3fc9fd4826b16f5130895438a82601d6531a29000982720f88cfc94fcc95f; candidatedeab6c9dea5342f3a83ca79e2be3f51d483b03a8f045fbfa8411a8e6ad645c8c. 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
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.