From d01a46a708ce21b33fd2e455aea118d0f5c92b22 Mon Sep 17 00:00:00 2001 From: Jason Ross Date: Tue, 25 Aug 2026 15:54:48 -0500 Subject: [PATCH] Stop counting the run this page calls inconclusive R29 found the discriminator claimed "exact across all seven" while r07 is recorded lower down as "inconclusive rather than ruled out, because no evidence came back from it". A row this page calls inconclusive cannot also be counted as evidence for the conclusion. Checking it turned up a second instance of the same over-count, which R29 did not name. The abort-cadence section said "Measured across the seven runs above" -- but the table records r07's aborts as **not readable**, because adb wedged before a crash buffer could be taken. Six runs contributed gaps, not seven. Both now say six, and both say why. The discriminator paragraph also says what excluding r07 costs, which is nothing: it is a `host` row, so the discriminator predicts it would not boot, and confirming a prediction with the one run whose evidence did not come back adds no information in either direction. That is the point R29 made -- claiming six does not weaken the conclusion -- and it is worth stating in the document rather than only in the ticket, because the next reader will otherwise wonder whether a run was quietly dropped. Deliberately left: "four of the seven runs show the directory creation itself is broken during the loop". That is a count of how many runs showed something, not a claim that all seven were readable for it, so it survives. Checked rather than assumed, and named here so the next pass does not re-audit it. R29's other half -- "state how r07's boot outcome was read" -- is not taken, because I do not know and inventing a source would be worse than narrowing the claim. Narrowing is the option R29 offered and the one that can be honest. Closes #38. --- docs/api-37-emulator-crash.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/api-37-emulator-crash.md b/docs/api-37-emulator-crash.md index 5051964..92530fe 100644 --- a/docs/api-37-emulator-crash.md +++ b/docs/api-37-emulator-crash.md @@ -32,8 +32,12 @@ reached* is not. Re-measured on 2026-08-22, seven runs, one variable at a time: | r06 | `android-37.1` rev 8 | `swangle_indirect` | ANGLE | **yes, 285 s** | 23 | | r07 | `android-37.0` rev 6 | `host` + `-feature -HostComposition` | host | **no**, wedged adb at 208 s | not readable | -The discriminator is exact across all seven: **a run boots if and only if the emulator log says -something other than `gles_mode_selected:host`.** +The discriminator is exact across the **six runs that reported**: a run boots if and only if the +emulator log says something other than `gles_mode_selected:host`. r07 is excluded on purpose — it +wedged adb at 208 s and is recorded below as inconclusive rather than ruled out, and a row this +page calls inconclusive cannot also be counted as evidence. Excluding it costs nothing: r07 is a +`host` row, so the discriminator predicts it would not boot, and confirming a prediction with the +one run whose evidence did not come back would add no information either way. One caveat about how independent those rows are, because the table flatters itself. `-gpu angle_indirect` (r05) and `-gpu swangle_indirect` (r03) both logged `gles_mode_selected:swangle` @@ -509,8 +513,9 @@ API 37", not "is that codec broken". `.github/workflows/api37-debug.yml` carried "roughly every 20 s" for the kill cycle in its own comments. That number was the watchdog's **sampling** interval, not the cadence, and the two got -conflated. Measured across the seven runs above, gaps between successive `hasReadColorBufferDma` -aborts run **20 s to 90 s, median 60–70 s — three to five aborts in a four-minute window**. +conflated. Measured across the **six runs whose crash buffer could be read** — r07 wedged adb +before one could be taken, so it contributes no gaps — successive `hasReadColorBufferDma` aborts +run **20 s to 90 s, median 60–70 s — three to five aborts in a four-minute window**. Slower than assumed, and still not slow enough: install, data-directory creation and instrumentation start-up do not fit inside one gap.