[2026-10-27] eagle: work/projects/cpm-post-release-analysis-2026-10-27.md
This commit is contained in:
1 parent
82abdf86fe
commit
ac34e6b73b
1 file changed
+2
@@ -186,3 +186,5 @@ The harness differs from macOS production in four ways:
|
||||
|
||||
- **Coexistence screen:** `CPMReproCoexistenceTests` (new `Options.embeddedTypes`), CPM + ad-blocking, fast unload, 1,000 cycles: **0 lost of 1,500 wake navigations** (85 min); at 30 s, 0 of 15. The ad-blocking background started once and unloaded at 30 s, but never woke again on fixture pages, so concurrent wakes of both backgrounds were not exercised. Its content scripts ran on every page. A second extension's content scripts alone do not trigger the wake hang.
|
||||
- **App Store vs DMG** (macOS 1.213, 26–27 Oct, per loaded install): episodes 20.8% vs 29.7%, wake cohort 9.8% vs 10.6%, cross-tab no-response 1.2% vs 2.4%. Sandboxing does not drive the wake cohort; the DMG excess is likely early-updater bias.
|
||||
- **Real-page screen** (`CPMReproRealPageTests`): earlier repro tests used `loadSimulatedRequest`, so loads never reached WebKit's Network process. `CPMReproFixtureServer` serves loopback pages through it: cross-origin iframes (`localhost` vs `127.0.0.1`), 302 redirects, `replaceState`, slow images, main-thread blocks. CPM + ad-blocking, fast unload, 1,000 cycles: **0 lost of 1,333 visits** across 7 profiles (~190 each), and no monitor episodes. Real loads, frames, redirects and URL rewrites do not trigger the wake hang.
|
||||
- **Next hypothesis — origin-changing M4 reload stalls on large data:** most confirmed macOS cross-tab hangs (1.213, 26–27 Oct, `tabs_affected≠1` and no response) have tail `proxy_on>dealloc>view>proxy_on`, view 4–8 s, ready <1 s, scripts present, **`reload_state=loaded` (97+22+22) or `response_timed_out` (34+17+13)**. The reload loaded, yet nothing answered for the rest of the episode. Released builds load the reloaded context under a new random origin, and P3 saw WebKit's origin migration slow with a large cache. Test: `CPMReproReloadOriginTests` fills the persistent HTTP cache (`/fill`, default 20,000 × 2 KB) and runs the M4 reload with released vs stable origin, timing post-reload silence. If confirmed, P3 also fixes hang persistence.
|
||||
Reference in new issue
Block a user