I am doing a massive 200TB transfer with rsync. I used a shell script I found off the internet to spawn a few processes but here is the relevant rsync command itself:
rsync --recursive \
--whole-file \
--inplace \
--sparse \
--no-compress \
--max-alloc=8GiB \
--size-only \
--human-readable \
--info=progress2 \
--log-file="$rsync_file_basename.log" \
--log-file-format="%o=%-7'''b | total=%-7'''l [%i] => %f%L" \
"/mnt/disk${disk_id}/$share_name/$share_subdir/" \
"$target_path" \
>> "$rsync_file_basename.out"
The transfer is going pretty well but in watching the logs, I see two kinds of errors sporadically pop up.
mostly this:
rsync: [receiver] ftruncate failed on "/mnt/remotes/TS140_stuff/pictures/family_1/IMG345.jpg": Resource temporarily unavailable (11)
But also a few of these:
rsync: [receiver] write failed on "/mnt/remotes/TS140_stuff/shows/ep1.mp4": Resource temporarily unavailable (11) rsync error: error in file IO (code 11) at receiver.c(380) [receiver=3.2.7] rsync: [sender] write error: Broken pipe (32) rsync error: error in file IO (code 11) at io.c(1700) [sender=3.2.7]
Now, the target directory is an SMB mount and this is a lot of data so I expected some things like this.
But the reason for this post is that I can see the files at the target destination and they look fine. Does rsync have some kind of retry logic that it's using based on the command?