[Csync2] csync2 prefix mapping ==> I/O Error 'No such file or directory' in rsync-check
Lars Ellenberg
lars.ellenberg at linbit.com
Thu Jul 19 09:12:34 CEST 2012
On Tue, Jul 17, 2012 at 10:44:13PM +0530, Samba wrote:
> Hi Lars,
>
> I have updated the patch to also sync the complete directory tree, but in
> the subsequent run.
Thanks.
Sorry for response times, swamped.
Though I should find some time for csync2 next week.
> I tried to make it sync in the same run by trying to invoke
> csync_update_file_mod funtion but was getting "Format Error", so left it
> with syncing in the subsequent run by marking those children
> [files/folders] as dirty.
>
> I also made a minor fix related to creating the configured backup directory
> instead of failing with an unrecognizable error message "Format Error".
>
> I'm confident that this patch makes csync2 more stabler and leavese very
> few chances of failing.
>
> I hope this patch gets approved and finally makes its way to the trunk soon.
>
>
> Thanks and Regards,
> Samba
>
>
> PS:
>
> A note about handling deletes with auto-mode younger/older --- perhaps we
> may not have a clean way of identifying whether the deletion on one node is
> younger than a modification on the other node when we are relying on
> scheduled mechanism like cron but we would certainly be able to distinguish
> when we integrate an inode eventing mechanism like lsync for populating the
> "hints" table. I agree that we should keep it for future though.
In that case you are talking about a tight race.
If you call csync2 -u "occasionally" only, then conflicts can happen.
But if you trigger it "immediately" (via inotify),
to have a conflict there,
you'd really need this to happen "simultaneously".
Because usually, you'd have either the deletion first (and propagated),
and then not a modify, but a (re-)create (propagated).
Or you'd have the modify (also propagated),
and then a delete (propagated).
So that would mean you really don't want to use csync2 as arbitrator
there, but fix your application to use some means of cooperation
("locking"?) *outside* of csync2.
Lars
More information about the Csync2
mailing list