Skip to content

v3.29.1

Choose a tag to compare

@arunavo4 arunavo4 released this 02 Sep 06:32
· 5 commits to main since this release

Fixes

  • A running mirror job could be picked up by recovery while it was still running. A new job had no checkpoint until its first repository finished, and the interrupted-job check treated any missing checkpoint as a crash without looking at how recently the job started. Because that check runs on every request, keeping the live view open was enough for recovery to grab a job within seconds and mirror the same repositories a second time. Jobs now start with a checkpoint, refresh it every two minutes while a long repository is in flight, and a job without one only counts as interrupted once it is more than ten minutes old.
  • Recovery could overlap itself. A request waited at most 15 seconds for recovery and then released its lock while recovery was still running, so later requests started new attempts and logged "Recovery already in progress, skipping" followed by "Middleware recovery completed with some issues". The lock is now held until the recovery run finishes, and the wait timer no longer leaves a stray rejection behind.

Notes

No migration. Fixes #372.

Full Changelog: v3.29.0...v3.29.1