mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
[docs] (P7): ID-P7-45 - X2 lands: the InitialCapsStartup flake was the fixture pairing loopback sockets by accept order
This commit is contained in:
@@ -47,4 +47,5 @@
|
||||
| ID-P7-42 | 2026-09-22 | **M2 门全绿;F 修复轮落地且门全绿;B3 r3 / B2 r4 到集成树;V1 修复轮审查 = land with fixes。** (1) **M2 门**(pipe):G1 恒等、census 79、棘轮 173、parity 0(十条 tail)、unit 2434 / 2435(同一 flake)、split 304 / spawn 220 / tcp 223、magma **100 / 79 / 71**(+3 `Reclaim.` 于 split 与 spawn)、full **538**、verify 构建 unit 2435 / integration-verify **1148** / integration-verify-split **1082**、OpenRA split 回放 0 unsound;fable 审查在跑。(2) **F 修复轮落地**(pipe `0293aebb..9cea5140`):child 在 `Accept()` 后关掉 hand-off 端 + `SendFd` `MSG_DONTWAIT`(base:12 条多余 DataBind 挂起、supervisor 卡在 `sendmsg`;后:12 条全部 `Refuse{Authentication} "could not be handed to the live session"`,新控制连接得 `Refuse{Busy}`)、listener 绑定后关(第二个 client 立即 ECONNREFUSED)、`scripts/ci/protocol_revision_pin.py` + `protocol_revision_pins.json` 把 `sha256(protocol.fbs)` 钉到 `MOBILEGL_PROTOCOL_CONTROL_REVISION`(改 schema 不 bump 即红;ctest `ProtocolSchema.RevisionPinsDigest` + `flatc-check` 作业步骤)、令牌比较定宽 64 字节、超额 Hello 请求记一条 `MGLOG_W`、`MintNonce` 失败先回 `Refuse{LinkTerms}`、垃圾首帧回 `Refuse{MalformedHello}`;文档:指纹拒绝是单向的(旧 server + 新 client = `no Welcome … (rc=6)`,即手机未重部署的症状)、unix 配对窗口与 SELinux 假设、两处 pre-auth 暴露 → §12(集成时 F 那条 §12 的「互拒」句已改正);门:unit **2436** / split 304 / spawn 220 / tcp 223 / magma 100 / 79 / 71 / full 538 / verify 1148 / 1082 全绿、G1 恒等;fable 审查在跑。(3) **V1 修复轮审查 = land with fixes**(fable):read 侧控制只要求一行——`savedPack` 经访问器读取已在中性窗口内,第一块 corrupt 单独就能红,第二块(backend read)无反证 → 断言 ≥ 2 行;「client 半边 0 行」的原因不是入口比对不报而是 **client 日志在退出时被截断**(`Debug::Close()` 后静态 `~VerifyState` 记摘要,`WriteToFile` 重开文件 "w"——既有缺陷,波及所有 `FATAL=0` 产物)→ **V1 修复 r2 派 fable**(verify 侧在 Close 之前 flush 摘要,不动 `Log.cpp` 以守 G1)。(4) **B3 r3 与 B2 r4 到集成树**(pipe `bd849b28..4b96f55d`):审计跨 `#endif` 只对整行 `#if MOBILEGL_BUILD_DISAGGREGATED` 放行、任意缩进的 `#else`/`#elif` 停走(16/16 夹具)、tcp 检查信息带 `MOBILEGL_IPC_CONTROL`、`EVIDENCE` 空模式保护、`stub_ctest.sh` 模式位恢复;B2:窗口腿底色改品红 / 0.625(读错面时三臂全红,已演示)、去掉死合取项、§6 按符号引用;门在跑。**V1 审查第 5 条(落地数字)**:契约 §6 与状态页改用 pipe 的 verify 构建读数(1148 / 1082),note 的表保留包树数字并标注。 | M2 + F 修复审查回 → 推送(含 B3 r3 / B2 r4);X2(`InitialCapsStartup` flake)、V1 修复 r2 在跑;窗口 1b 矩阵在跑。 | `ServerMain.cpp`、`FdPassing.cpp`、`protocol_revision_pin.py`、`wire_declines_audit.py`、`DepthStencilReadbackMatrixScenario.cpp` |
|
||||
| ID-P7-43 | 2026-09-22 | **M2 审查 = land with fixes,含一条 must-fix;集成者会话收尾并交接。** M2 审查(fable):**must-fix** = 中帧 use-after-free 的新可达点——M2 让孤儿 wire store 在帧中被销毁,而 `UniformManager` 的 `FastRebindMemo` 按裸 `VkBuffer` 句柄命中、descriptor-reuse memo 的签名混入 `VkDescriptorBufferInfo` 字词,二者都不看 epoch;句柄被堆复用后同一 program 的下一次 draw 命中旧 descriptor set → 静默错 UBO / SSBO 字节、无 Fatal(base 上 wire store 只在 `BeginFrame`/drain 死,与 memo 清空配对,M2 打破了配对)。修法 ~10 行:`VkBufferManager` 的 `m_wireStoreDestroyEpoch` 在每条销毁路径上自增,`UniformManager` 的两个 memo 带上 / 混入它(disagg 守卫内)——在 M2 分区之外,**集成者按 §9 批准例外**,已派 **M2 r2**(fable);同轮:note §0 引用改 pipe SHA、`VkBufferManager.h` 的「floor 非证明」去掉过期理由、case 3 单侧断言补 `ASSERT_GE`、「never decreases」注释、`RespecifyWireBuffer` 清 `lastUseSubmitIndex`、`ServerSpawn.cpp` 清洗名单补 `SpinUs/ServerAffinity/Audit`。审查确认:提前释放的三个条件健全(每条把 store 交给 GPU 的路径都打 `lastUseSerial`;park tag ≥ B3 的 `lastUseSubmitIndex`;`IsSubmitIndexComplete` 拒绝未提交索引;空闲判定真)、水位线同线程无跨线程等待、失败漏斗同族一处 abort、计量 / 配置全在 push / disagg 守卫内、descriptor-set 归因成立(VMA 子分配,M1 的「一 VkBuffer 一 memfd」不可能)。**用户令收尾**:让在跑的 agent 跑完并把报告写到 `~/w7/notes/handoff/`,机械未完项写进 [`HANDOFF-2026-09-22.md`](HANDOFF-2026-09-22.md)(M2 r2 落地 → p7w6 + 手机 server 重部署 → bsl 验收 / 窗口 1b 对照 / 门 3 终局 → M3 → B4 → F2 → wave 3 棘轮 88 → wave 4 CTS AFTER → wave 5),交给其他 agent。 | 推送集成树头(门全绿;M2 的 must-fix 由 M2 r2 关闭,在此之前 wire 臂有一处已知可达的 memo ABA)。 | `UniformManager.{h,cpp}`、`VkBufferManager.{h,cpp}`、`HANDOFF-2026-09-22.md` |
|
||||
| ID-P7-44 | 2026-09-22 | **用户叫停 fable 审查代理,改由集成者本人审查。** F 修复轮 = **land**(两 nit 记债:`RunSession` 里 `Accept()` 返回到 `close(sourceFd)` 之间已转发的一条 DataBind 会随队列被关而无具名拒绝,微秒级窗口;`protocol.fbs` 任何字节变化都要 bump,严格但有意);B3 修复 r3 + B2 r4 = **land**(审计跨 `#endif` 只认整行 disagg 守卫、任意缩进 `#else` 停走;`EVIDENCE` 三种空模式都拒;模式位 100755;窗口腿底色品红 / 0.625 独一;门控只看 transport)。审查文本在 `notes/handoff/review-f-fix.md`、`review-b3r3-b2r4.md`(仓库与 WSL `~/w7/notes/handoff/` 各一份)。 | 集成树头已推送;余下机械项见 HANDOFF。 | `notes/handoff/` |
|
||||
| ID-P7-45 | 2026-09-22 | **X2 落地**(pipe,test-only):`InitialCapsStartup.*` 与 `SocketTransportTest` 的 TCP 用例在负载下偶红的真因是**夹具**按 accept 顺序配对两条 loopback 连接,而内核在负载下会乱序交付(裸 socket 探针:空闲 0/2000、20 个 CPU 占用者下 5/3000)——对端把数据套接字当控制用,`StreamLink` 读到 `MGLD` 魔数外的首帧 → `Fatal{ProtocolCorruption,"StreamLink"}`;夹具改用产品的 DataBind nonce 会合(PH-7 (4) 形状),三例 0/500;无产品字节变化,G1 恒等。域外债:`AcceptPair`/`ConnectTo` 对 `tcp://` 监听仍可调且按顺序配对(产品从不这样用),未具名拒绝。 | pipe unit 车道全绿后推送;`~/w7/notes/handoff/x2-caps-flake.md`。 | `InitialCapsStartupTest.cpp`、`SocketTransportTest.cpp` |
|
||||
| ID-P7-19 | 2026-09-22 | OpenRA 真机分歧改判为 **wire 臂的 GPU 时序竞态**(冷驱动缓存 = 慢 pipeline 创建 → 最终帧回读在最后几批 draw 完成前采样),归 wave 2-B 第 0 片;主机 red-once 用 pipeline 创建延迟旋钮复现;真机验收 = 三次 `pm clear` 冷跑 1.0。F1 保留(机制正确)但不再被当作分歧原因。 | E7:`pm clear` 三遍 0.976493989 / 14658 逐字相同、热跑 1.0、冷 monolith 1.0、`FRAMESINFLIGHT=1` 一绿一红;两臂 client/server 日志逐行相同;diff 只缺最后画的对象。 | `WireFramebuffer.inc`、`VulkanRenderer.cpp`、`F1-verify/README.md` |
|
||||
|
||||
Reference in New Issue
Block a user