Browse Source
Instrumented traffic-enabled specimen: wedged workers blocked (not spinning) in WaitForSingleObject(sockListLock, INFINITE) inside tcludp event-source procs (disassembly maps both wait sites to the sockListLock static; the SocketThread released properly and parked on waitForSock). Handle-table data from the full dump proves both tcludp global event objects were CloseHandle`d mid-session: the statics still hold handle values now recycled to an IoCompletion object and a manual-reset event (tcludp only creates auto-reset events). Waiters starve forever on unsignalable objects. Only ExitSockets closes these handles; the sole udp-loaded thread that died mid-session (run-1 shellfilter-run worker, terminated in the run transition) is the prime trigger suspect. Console dependence dissolved - the CONIN$ restart was simply the only mid-session udp-thread-death scenario. Minimal-repro die-variants (release / terminate-mimic / full punk env) do not yet reproduce; next candidates recorded (resultvar-terminate, thread::cancel, live CloseHandle breakpoint). Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.commaster
1 changed files with 46 additions and 0 deletions
Loading…
Reference in new issue