From 99be872d1cae0db5d2ce3ff866e3066aaed3e27c Mon Sep 17 00:00:00 2001 From: Sylpheed RE agent Date: Sun, 23 Aug 2026 20:03:53 +0000 Subject: [PATCH] docs: correct the freeze entry - the lead is dead, the spin is the finding Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE --- docs/re/BACKLOG.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/re/BACKLOG.md b/docs/re/BACKLOG.md index b4625fcd..4e2150b3 100644 --- a/docs/re/BACKLOG.md +++ b/docs/re/BACKLOG.md @@ -269,13 +269,18 @@ is what the autopilot needs in order to CHOOSE a target. One run in: * ❔ **20 candidate per-entity flag offsets** exist (offsets where exactly 4 of 23 entities share a value) and have **never been put to the second test**, because the guest froze before the counter could move. -* 🔴 **An in-mission freeze — now the item in front of everything else**, and it - has a lead: the log ends in **1 171 refused resumes of one thread by one - thread**, against ~7 in a normal boot, and 11 of 79 host threads have zero CPU. - That is the lost-resume signature in a build that already has the lost-resume - fix. `frozen.py` detects the state in one call; `ob_hunt.py`/`ob_flag.py` abort - on it. **Roughly two runs in three.** Next: reproduce with the Kernel channel - on (`LOG_MASK=12 LOG_LEVEL=3`) and map guest handle `F8000240` to a host tid. +* 🔴 **An in-mission freeze — the item in front of everything else.** Reproduced + with the Kernel channel on. 🔴 The resume-spin lead is **refuted by its own + control**: a still-flying run has *more* refused resumes (2 738) than a frozen + one, because the game runs a self-suspending worker and the host refusal is one + per cycle by design. ✅ What is established instead: the guest is **spinning, + not deadlocked** — over 10 s while frozen the main thread is in state `R` + gaining 409 ticks, guest threads ~680 in total, and **not one kernel call** is + made. So it is guest code waiting on guest memory. **Next: which guest PC** — + a Canary diagnostic that dumps each `XThread`'s PPC PC on demand, then + `sylpheed.db` to name the function. That is a `build-canary` plus a + reproduction. `frozen.py` detects the state in one call; `ob_hunt.py` / + `ob_flag.py` abort on it. **Roughly two runs in three.** See [`mission-freeze-resume-spin.md`](mission-freeze-resume-spin.md). **First step:** re-run `ob_flag.py` on a run that is advancing — it aborts early