I never figured out how I should tread error 13 from rsync, "Problem
with diagnostics". My question is, is this a transient or permanent
error? Or how seriously did something go wrong when rsync returns 13?
I don't get much smarter reading the rsync source either.
For reference this is for Lsyncd, which watches files with inotify and
uses rsync to transmit changes to a slave. It compacts calls to rsync
with filters so rsync has only to look at the files that changed etc:
Here is the table of its exitcode:
local rsync_exitcodes = {
[ 0] = "ok",
[ 1] = "die",
[ 2] = "die",
[ 3] = "again",
[ 4] = "die",
[ 5] = "again",
[ 6] = "again",
[ 10] = "again",
[ 11] = "again",
[ 12] = "again",
[ 13] = ???,
[ 14] = "again",
[ 20] = "again",
[ 21] = "again",
[ 22] = "again",
[ 23] = "ok", -- partial transfers are ok, since Lsyncd has
registered the event that
[ 24] = "ok", -- caused the transfer to be partial and will
recall
rsync for that anyway.
[ 25] = "die",
[ 30] = "again",
[ 35] = "again",
[255] = "again", -- all kind of ssh-errors .
}
ok: changes have been transfered
again: transient error, keep recalling rsync until it works.
die: something is seriously amiss, die spectacular.
What should I put at 13?
If I understood the log code correctly: in cases it cannot assemble
the message, couldn't it just return the partial message string and
the correct error number?