diff --git a/docs/ISSUES.md b/docs/ISSUES.md index 608f62a4..e5f87b71 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -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`).