check / check (push) Waiting to run
Restore and deep verify read the snapshot database straight from storage rather than through FetchBlob, so the earlier fix for stalled blob reads did not cover it. A database read stalled on a slow USB stick or network share kept the operation from returning after Ctrl-C; the process then exited at the shutdown timeout and left the decrypted database in the temp directory. Both reads now wrap the storage reader in the close-on-cancel reader FetchBlob uses, so a cancel ends the stalled read and the temp directory is removed. The interrupt test now stalls either a blob or the snapshot database, for both commands. Limitation: a read stuck in the kernel that closing cannot interrupt, such as one on an unresponsive hard NFS mount, still cannot be stopped. Model: opus-5-5