Backend: GET /recorders fires unbounded concurrent Docker API + PG calls (N+1) #121
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixed in
04ce096.GET /recordersnow resolveslive_asset_idfor every recording row in a single LATERAL JOIN, and Docker container inspects are bounded to actually-recording rows and run in parallel with the existing 10 sdockerApitimeout.zgaetano referenced this issue2026-05-26 18:22:49 -04:00
Fix Plan — #121 GET /recorders N+1 Docker/PG calls
Root cause:
recorders.js:198-202—Promise.allover everyrecording-status recorder makes N concurrent Docker API + N concurrent PG queries. No concurrency budget. 20+ recorders → starves Docker socket + PG pool.Fix — add p-limit:
Files:
src/routes/recorders.js:198-202,package.jsonEffort: ~1h
**Priority: P1 — performance
recorders.jsdockerApihas no socket timeout — hung Docker socket blocks recorder start/stop indefinitely #91