mirror of
https://github.com/phantomptr/ps5upload.git
synced 2026-10-18 18:10:05 -05:00
The Files screen uploads a pick of files one AVA1 job per file, all on the engine's one shared session. The console's job table holds 32 jobs, and an upload that ended stayed listed (with its job thread and workers) until its session ended: only parked jobs were ever reaped, and a session is parked only when it ends. So the 33rd file of a pick got ERR_BUSY "too many jobs, or this job is still closing" for 12 retries and failed, and every later file did the same until the helper was replaced (a new session). Reproduced on the Phat (FW 13.60): file 24 of the Switch-like set failed busy, and the table never drained while the session lived. - A finished upload or download (not a copy, op or console-to-console send) stamps concluded_ms once its JobDone is out (or the peer's came in). - The reaper lets such a job go 10 s after that, attached or not, unless it still has files settling (unswept), as SPEC §11.7 intended. - A JobOpen that finds the table full takes the slot of the concluded transfer that ended longest ago and nobody else holds, instead of BUSY. Tests: C unit test of the eviction and reap rules (wire_upload), and a host test of 40 single-file jobs in a row on one session (failed at file 32 before). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RxCGb8Asp1A1AQYiv1kbgS