partial-dir not being used?!
Carlos Carvalho
carlos at fisica.ufpr.br
Fri Jul 17 08:36:26 MDT 2009
Carlos Carvalho (carlos at fisica.ufpr.br) wrote on 17 July 2009 02:13:
>Matt McCutchen (matt at mattmccutchen.net) wrote on 16 July 2009 20:59:
> >On Thu, 2009-07-16 at 01:48 -0300, Carlos Carvalho wrote:
> >> What's the purpose of --partial-dir then? I thought it was leaving the
> >> partial transfer as path/partial/filename instead of
> >> path/.filename.random. That's what it tried to do but this isn't fine
> >> if it needs another move. If rsync is killed with STOP or the machine
> >> crashes this partial will be lost? That doesn't look very useful.
> >
> >It's fine and useful if rsync is killed with INT or TERM or hits a fatal
> >error (e.g., dropped connection).
>
>Yes but will leave a lost partial in the tree if it's killed by KILL
>(I meant kill above instead of stop) or the machine crashes. If it
>used the partial dir the partial file would be where one expects to
>find only partials.
>
> >I believe the reason why rsync doesn't create the file in the partial
> >dir from the start is that it may be using an old partial file as a
> >basis for a delta-transfer. Rsync can't just append to the old partial
> >file because, in general, the beginning of the source file might have
> >changed since the old partial file was created.
>
>There can be several partials in the partial dir for the same file,
>resulting from more than one interruption. rsync can always use the
>more recent one as basis to proceed.
>
> >> How can we make rsync put the partial in path/partial/filename during
> >> the transfer?
> >
> >I think the current behavior is reasonable.
>
>It is but it seems it could be better with apparently no
>disadvantage...
>
> >You're always welcome to modify your own copy of rsync.
>
>I've worked around it by also setting --temp-dir. If rsync is
>interrupted by a catchable signal it moves the portion to partial-dir,
>if not next time it finds the partial in temp-dir and can continue
>from there. Also, no dot files are left in the destination tree. It
>requires one extra move for each file, which also happens with
>partial-dir anyway, so I got what I wanted. However, if the temp-dir
>is not on the same filesystem then it gets really bad because it
>requires a full copy so your disk IO will be doubled. With the partial
>directly in partial-dir this wouldn't happen.
What happens if we set temp-dir the same as partial-dir? Won't rsync
do just what's described above?
More information about the rsync
mailing list