On Fri, 2007-11-16 at 13:22 -0800, Charles Polisher wrote: > I am experimenting with Matt McCutchen's excellent continusync script, > and I'm having an issue. (My copy of continusync has been modified from > the original > http://mattmccutchen.net/utils/continusync by adding this @ line 227: > > <$fromInwt>; > > as suggested by Matt.)
Good, so you got this part to work. > The problem is easily reproduced: > > # mkdir ~/foo > # continusync ~/foo [EMAIL PROTECTED]:~/foo & > # vi ~/foo/bar.txt > > This generates an immediate exit from continusync with the following 3 > messages: > > "rsync: link_stat "/root/foo/.bar.txt.swx" failed: No such file or > directory (2) > rsync error: some files could not be transferred (code 23) at > main.c(977) > [sender=2.6.9] > [1]+ Broken pipe continusync ~/foo [EMAIL PROTECTED]:~/foo" > > This is using slackware 11, on which vi is a link to vim version 7.0. > By strace'ing vi I can see that it rapidly creates then destroys the > .swx > file. > > I suspect there may be a race in continusync somewhere, but I > haven't been successful at narrowing it down. I am using rsync v2.6.9, > the > latest stable version. Yes. Continusync gets the event for the creation of .bar.txt.swx and invokes rsync to have it sent, but the file is deleted before rsync can send it. There's no way to avoid this race completely. However, any of three changes to continusync would make it much less of a problem, and I will make all three if and when I have the time: 1. Wait for a short time after a change to the source occurs before propagating it. If a file is created and then rapidly deleted, no action is necessary. Implementing this fully would require a data structure to remember pending changes; it would have to be somewhat sophisticated to handle moves optimally. 2. Somehow get rsync to treat disappearance of the source file as "file has vanished" rather than an error. This could be done inelegantly by running rsync on the top source directory but excluding everything except the changed file(s). It might be better to use a modified rsync with an option that causes it to treat any and all missing source args/--files-from entries as "file has vanished". 3. Figure out why continusync is exiting altogether when rsync returns error 23 and stop it from doing that. Matt -- To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html
