correct the record: the 2026-08-10 boot wedges were the USB-serial adapter hanging an unbounded overlapped write, NOT print-deadlock (confounded A/B, retracted); pod runbook gets the full COM1/FTDI diagnosis + remote minidump procedure
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
716e10e3fa
commit
9754fb1295
@@ -510,6 +510,27 @@ trailing-space payload) or use PowerShell `Add-Content`. Bit us arming BT_GLASS_
|
||||
`Expand-Archive` → podkit → `schtasks /run` came up clean on the first try — rig config survived,
|
||||
newest-install auto-resolve worked, no hand-edits. The cab genuinely upgrades like a tester box.
|
||||
|
||||
**9a. ⚠ THE RIO's "COM1" IS A USB-SERIAL ADAPTER — the axis-dropout / frozen-boot fault
|
||||
(2026-08-10, minidump-proven) [T1].** `\Device\VCP0` = an FTDI adapter (FTE7PGA5A); COM2 is a
|
||||
second FTDI (A995JTOYA); **two ghost Prolific PL2303 entries also claim "COM1"** from earlier
|
||||
plug-ins (clean them in Device Manager). When the adapter's **USB side** drops mid-operation:
|
||||
brief drop = analog polls go mute (the field "encoder dropouts", revived by hand-jostle /
|
||||
re-enumeration — NOT by button protocol); drop with a write in flight = the 1995 code's
|
||||
**unbounded `GetOverlappedResult` wait in `PCSerialPacket::SendPacket` parked the whole game at
|
||||
0 CPU forever** (three boots on 2026-08-10; stack: NtWaitForSingleObject ← GetOverlappedResult ←
|
||||
SendPacket ← RIO ctor). **Hardened in 4.11.881**: 500 ms bounded write + CancelIo + 3 s sick
|
||||
window (fast-drop, game keeps frame rate, keyboard fallback lives); `txTO=` in the `[rio]` health
|
||||
line counts the events — proven the same evening (`txTO=1 rRetry=4` on a boot that SURVIVED).
|
||||
USB **selective suspend disabled** system-wide on the cab the same day (powercfg) — prime suspect
|
||||
for the random-period idle dropouts. Hardware to-do: FTDI adapter into a REAR motherboard USB
|
||||
port, reseat its USB end. ⚠ A first "print-deadlock" diagnosis of the boot wedge was WRONG
|
||||
(confounded A/B) and is retracted — the dump is the authority.
|
||||
**Remote minidump procedure (worked over SSH, no tools install):** 32-bit dump of the wedged pid
|
||||
via `C:\Windows\SysWOW64\rundll32.exe C:\Windows\SysWOW64\comsvcs.dll, MiniDump <pid>
|
||||
C:\bt411\w.dmp full` → scp home → local x86 cdb (`where.exe cdb` resolves the bt411-tools copy)
|
||||
with `-y C:\git\bt411\dist` (the archived per-build PDBs) → `~*k`. A 64-bit comsvcs dump of the
|
||||
WOW64 process shows only 64-bit frames — use the SysWOW64 pair.
|
||||
|
||||
**9. ⚠ `schtasks /end` ORPHANS the game — the dead-RIO trap (2026-08-10):** `/end` kills the
|
||||
batch, but `runpod.bat` `start ""`s the exe DETACHED, so the old btl4.exe survives, keeps COM1
|
||||
open, and the NEXT launch boots with a dead cockpit board: `InitSerialPort() failed
|
||||
|
||||
Reference in New Issue
Block a user