docs: file #460 — windowless shutdown hang after an aborted automation script at the Nanto pose

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-09-03 16:41:56 +02:00
parent 7fa83c7397
commit 2fbfdf18a8

View file

@ -39,6 +39,32 @@ confirmed closed by the owner, 11 need a focused live gate, and 43 are safe to
remain closed. See
[`docs/research/2026-08-28-owner-closed-issue-validity-audit.md`](research/2026-08-28-owner-closed-issue-validity-audit.md).
## #460 — Shutdown hangs windowless at 100 % of one core after a close request that follows an aborted automation script (Nanto pose)
**Status:** OPEN — found 2026-09-03 by the Campaign OVERHAUL v2 G3 self-gate (`logs/selfgate-20260903-162027-g3`, Release at `5b43d8d55`).
**Severity:** MEDIUM (a client that never exits; the ACE session stays held until its own timeout; any automation that relies on a graceful close stalls)
**Component:** graphical shutdown (`GameWindow.OnClosing``CompleteShutdown` path) after `RetailUiAutomationScriptRunner` aborts a script
**Sequence:** the route's `/teleloc E43D001E …` (Nanto waterfalls) started reveal generation 13; the probe's
`wait world-visible 90000` timed out at `client.log:709` BEFORE the readiness line (`:714`, then
materialized `:716`, world-visible `:718`, complete `:719`) — the reveal took longer than 90 s, so the
script aborted and its `close-client` verb never ran. After the runner's 900 s timeout it sent
`CloseMainWindow()`; 20 s later the process was still alive. A second `CloseMainWindow()` + 60 s: still
alive. Inspection at 16:40: `MainWindowHandle = 0`, empty title, not visible, not minimized — the window
HAD been destroyed by the first close — yet the process ran 33 threads with CPU rising 2.98 s per 3 s
(one thread spinning), working set 1.36 GB, and `client.log` kept receiving
`player: applied server movement stats …` lines (463 in this run vs ~220 in a normal one — the session
stayed connected and kept applying the same stats). No `[session] graceful logout requested` line was
ever written, so the shutdown never reached the logout step. `Stop-Process -Force` ended it (own client;
graceful close had been tried twice).
**Two questions to answer, in order:** (1) why the Nanto reveal exceeds 90 s on a cold region (radius 25,
`0xE43D001E`) — S5 world-solidity territory, measure it with the reveal probe rather than guess; (2) why
the window-destroyed shutdown spins instead of requesting logout and exiting — reproduce by aborting a
probe script mid-wait and closing the window; take a managed dump (`dotnet-dump collect`) BEFORE killing
next time. The runner's own rule ("never hard-kill") is for owner-started clients; the lead's own client
may be force-stopped after two failed graceful closes, and ACE then holds the session ~3 min.
## #459 — Five fragment shaders declare SPIR-V `DemoteToHelperInvocation` without the device feature (validation error at every launch)
**Status:** OPEN — found 2026-09-03 by the first Vulkan-validation-layer self-gate of Campaign OVERHAUL v2 (S3 chunk 4 fix round 2's gate; the layer was forced through the loader with `VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation`, since `ACDREAM_DEVTOOLS=1` only adds the debug-utils extension — `VulkanInterop.cs:182-183` creates the instance with `EnabledLayerCount = 0`).