dragonflight/services
ZGaetano 3c7cc1a77f fix(worker): retry transient S3 aborts + reuse one keep-alive client
Burn test: 5 assets errored during proxy with 'aborted'/'socket hang up'
during the master DOWNLOAD. The masters all exist in S3 (262-269MB) — it's
the connection-limited RustFS backend dropping streams when 8 jobs hammer it
at once. Two fixes:

1. downloadFromS3/uploadToS3 now retry transient failures (aborted, socket
   hang up, ECONNRESET, timeout, 5xx, throttle) up to 5x with exponential
   backoff, cleaning the partial file between download attempts. A single
   mid-stream abort no longer errors the whole asset.

2. Reuse ONE shared S3 client instead of createS3Client()+client.destroy()
   per call. The per-call destroy tore down the keep-alive agent's sockets
   every time, so connection pooling never happened and each transfer opened
   fresh connections — exactly what overwhelmed RustFS. A long-lived client
   lets the keep-alive pool actually be reused.
2026-06-04 16:56:11 +00:00
..
capture fix(capture): pin NVENC to a GPU with ffmpeg -gpu N (privileged bypasses env) 2026-06-04 16:07:59 +00:00
framecache fix: declare all slot functions in slot.h to prevent 64-bit pointer truncation 2026-06-03 20:16:35 +00:00
mam-api fix(stability): spread capture encodes across all GPUs + GOP parse + filmstrip retry 2026-06-04 15:56:44 +00:00
node-agent fix(capture): pin NVENC to a GPU with ffmpeg -gpu N (privileged bypasses env) 2026-06-04 16:07:59 +00:00
playout feat(playout): redesigned MCR screen + SCTE-35 end-to-end 2026-05-31 19:58:02 -04:00
premiere-plugin diag(premiere-plugin): v1.2.5 — no-op IIFE writes to Documents/ + reports lf.open result 2026-05-28 03:59:40 +00:00
premiere-plugin-uxp fix(uxp): remove broken v2.2.3 ccx — stay on v2.2.2 2026-06-03 16:07:32 +00:00
web-ui fix(stability): spread capture encodes across all GPUs + GOP parse + filmstrip retry 2026-06-04 15:56:44 +00:00
worker fix(worker): retry transient S3 aborts + reuse one keep-alive client 2026-06-04 16:56:11 +00:00