You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
stream-video --format mjpeg grows without bound (~5–7 GB/min) on macOS 26.5.2 #72
stdout piped to a Node process that reads continuously (flowing mode, never blocks), stderr drained.
What happens
The axe process's physical footprint grows linearly from the first frame and never plateaus. Measured with footprint(1):
~110 MB/s sustained (44 MB → ~690 MB in 9 s)
41 GB → 45 GB over 15 s at the 7-minute mark
A system stackshot caught it at 48.65 GB resident after 12 minutes, at which point WindowServer became unresponsive, watchdogd killed it, and macOS force-logged-out the graphical session.
ps RSS stays small (~280 MB) because the growth is in compressed/swapped pages; footprint -p <pid> or top's MEM column shows the real number.
Expected
Footprint stays roughly constant once streaming; frames already written to stdout should be released.
Notes
The consumer keeps stdout drained, so this doesn't look like pipe backpressure on our side.
Not tested with other --format values or fps; happy to run a specific comparison if useful.
Workaround in our tool: poll footprint and recycle the process past a limit.
I can share the full stackshot (WindowServer …userspace_watchdog_timeout.spin) privately if that helps.
Activity