atproto relay in zig zlay.waow.tech
relay zig atproto

broadcaster: saturate the queue-full spin counter master

full_spins is a u32 diagnostic incremented in the push spin loop. When the broadcaster stops draining, a frame worker spins on it indefinitely and it overflows, panicking under ReleaseSafe -- so 'consumers are slow' becomes a crashed relay. Hit this on the zio backend, where a stalled drain kept the queue full: thread 9702 panic: integer overflow broadcaster.zig:371 in push frame_worker.zig:314 in processFrame Saturating add. The stall itself is a separate bug; a diagnostic counter should never be the thing that takes the process down. 107 pass, 1 skip. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>


+5 -1
1 changed file