Either way - as a workaround, you could drop delete-excluded, and
then just finalize the thing with something like: find /bar/ -depth
-name ".rsync-partial" -exec rm -rf "{}" \;
I meant more like: -name ".rsync-partial" -prune -exec .....
Shivkumar Venkatasubrahmanyam wrote:
Makes sense. And this does seem like a corner case :) I did some more
testing along the lines you suggested ...
mkdir src ; touch src/a
mkdir dst ; mkdir dst/.rp
rsync -a -vvvv --delete-excluded --delete-delay --delay-updates
--partial-dir=.rp src/ dest/ >log 2>&1
It seems this bug/corner case requires all the following conditions:
(1) [...]
I've straced it a bit - it looks like the flow is as follows:
1) with delete-excluded + delay-updates - .rp is deleted before
transfers (delete-excluded implies --delete-during, which in turn
behaves like per-dir --delete-before), then recreated when there's a
need to rename temporary file to that dir `rename(".a.7e7C6w", ".rp/a"`
then .rp is deleted as it's no longer needed, /unless/ it has something
left in it.
2) with delete-excluded + delete-delay - due to lack of delay-updates,
.rp is not needed by rsync at all, /unless/ the transfer is interrupted
(then .rp will be created, and parital file moved there). Deletion
happens only once, at the end, due to delete-delay.
3) with all the 3 above - situation similar to 1) happens, but at the
very end, and there's funny conflict - .rp will be deleted due to not
being needed anymore, but then delete-delay will take the action. First
trying to delete .rp's contents, but ... the dir is not there anymore,
thus ENOENT (due to opendir failing) and rsync's exit code 23.
I use all three of these options: --delete-excluded because I have added
"--filter" options over time and I want the destination to reflect these
newly excluded files,
Any particular reason for that ? Sender/receiver rules can achieve the
same, with much nicer flexibility. What delete-exclude does, is just
turn exclude into sender-exclude globally. You can do that explicitly, e.g.
H, something
-,s something
--
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html