We already handle the case where a file vanished during the transfer, because rsync returns exit code 24. But it's not uncommon for a file to vanish before we started rsync, or for the file list to simply be outdated, so that we asked rsync to transfer something which simply wasn't there at the beginning of the transfer. Sadly rsync returns the generic "23" exit code when this happens.
When getting 23 back from rsync, we should grep through the error log and if all of the errors are of the form:
rsync: link_stat "/fedora/linux/updates/24/SRPMS/a/awscli-1.11.63-1.fc24.src.rpm" (in fedora-buffet0) failed: No such file or directory (2)
then we should pretend we got error 24 instead and not sleep/retry. Alternately we should re-fetch the file lists and if they've changed then start the whole process anew. (The latter might be a good thing to do in a number of cases.)
Note that we must ignore any line in the error output not beginning with "rsync: ". This will catch anything we write to the error log, as well as the generic "rsync error: some files/attrs were not transferred" line.
Only eight open tickets and I file duplicates. This one duplicates #23.
Metadata Update from @tibbs: - Issue close_status updated to: Duplicate - Issue status updated to: Closed (was: Open)