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