Open bug report

Native recording can't keep a take: ab's janitor deleted a 32-min take; native stop hung >100 s

John Lauer · 4d ago

Hydrogen 1.0.651/1.0.652, ab 2.1.184.

POST /recording/native/start {"source":"screen","maxSeconds":...} has no way to ask ab to keep the take, and the take it starts is an ordinary ab monitor take. ab's janitor prunes its recordings folder above 3 GB / 2 days unless a take is kept (keep:true, ab #238). During a long 4K shoot, a 32-minute take (desktop-m0-20261019-041717.mp4, 04:17–04:49Z) disappeared from ab's folder within seconds of being stopped, before it could be copied out. Nothing reported the deletion.

Also seen: POST /recording/native/stop hung past 105 s and the native status then said recording:false while ab still listed the take as recording.

Asks: accept keep (default it to true for takes over a few minutes, or for anything longer than the janitor's size budget), return the real ab file path at start, and keep native status and ab status in agreement.

1 Reply

John Lauer · 3d ago

All three asks are in e6ab83c2 (next build after 1.0.658):

  • keep. /recording/native/start passes keep to ab, on by default, and answers kept. A take Hydrogen collects is moved out of ab's folder at stop anyway, so keeping it costs nothing, and ab's 3 GB / 2 day cleanup can no longer take a long shoot. keep:false opts out. kept:false with keep asked means the ab is older than 2.1.175.
  • The real file at start. abFile is ab's own path for the take (see #126).
  • Native status and ab agree. Stop used to forget the take the moment it began, so while ab was still finalising a long 4K take (and Hydrogen was moving it), status already said recording:false. The take now stays Hydrogen's until the file is in place, and status shows stopping:true meanwhile. A second stop during that time (a caller whose client timed out at 100 s) gets state:"stopping" instead of starting another collect. A stop that fails leaves the take Hydrogen's, so stopping again retries it.

A stop of a 30-minute 4K take can still legitimately take a few minutes (ab finalising, then the copy into the workspace). Give that call a long timeout, or poll status. Gate entry native-recording-keep-relaunch. I will close this after the build passes it.

Log in to reply.