Hi Marijn, You may find the attached patch useful. I used it to debug my issue and determine why rdiff-backup was reporting "Update temp file ... does not match" errors backing up to my NFS share. For me it gave results like this:
Sun May 4 14:41:54 2014 Processing changed file bin/red Sun May 4 14:41:54 2014 Hard linking /mnt/autofs/backup/bin/rdiff-backup.tmp.1 to /mnt/autofs/backup/bin/ed Sun May 4 14:41:54 2014 Loose compare ('bin', 'red') to ('bin', 'rdiff-backup.tmp.1'): user group mismatch: user_group.map_rpath(first)=(0, 0) != second.getuidgid()=(99, 99) Sun May 4 14:41:54 2014 UpdateError bin/red Updated mirror temp file /mnt/autofs/backup/bin/rdiff-backup.tmp.1 does not match source Sun May 4 14:41:54 2014 Deleting /mnt/autofs/backup/bin/rdiff-backup.tmp.1 Use rdiff-backup -v 7 or greater. The extra line is the "Loose compare ..." one. Thanks, Mike On 15 May 2014 10:27, Dominic Raferd <domi...@timedicer.co.uk> wrote: > Marijn, > > My guess is that it is something to do with gfs2, there doesn't seem to be > much experience of this with rdiff-backup. > > Please let us know if Mike's patch works for you, as this would suggest it > might have wider applicability. > > If not, is it possible for you to run rdiff-backup the other way around i.e. > run rdiff-backup on the destination (with local gfs2) pulling from remote > ext4 source? And/or try it with --no-eas and/or -no-acls. > > Dominic > > > On 15/05/2014 10:06, M. Verkerk wrote: > > Dominic, > > I’m mistaking, you’re right.. A previous setup was using sshfs and it’s > actually the internal system which is being used now. > > The destination folder has a gfs2 file system. > > The source folders have ext4. > > attributes / access is not really essential, but preferred! > > Thanks, > Marijn > > > On 15 May 2014, at 10:45, Dominic Raferd <domi...@timedicer.co.uk> wrote: > > Hello Marijn > > Yes from Mike's email it does seem there is a problem with rdiff-backup if > the destination filesystem is accessed via NFS. > > I hadn't realised you use sshfs, the script you gave appeared to use > rdiff-backup's internal connection method. Yet I use sshfs to mount a remote > source directory (for a source machine which cannot run rdiff-backup) and I > have never had any problems with it, my remote filesystem is ext4 > (previously reiserfs), the destination filesystem is ext4. I have always > used rdiff-backup switches --no-eas and --no-acls which may or may not be > significant, and I backup from an LVM snapshot of the source. > > What are the underlying filesystems for the sources (/etc and /home) and for > the destination (YYY.domain.nl::/data/backup/XXX/rdiff-disk-backup)? > > Dominic > -- > TimeDicer: Free File Recovery from Whenever > > On 14/05/2014 13:43, M. Verkerk wrote: > > Dear Dominic, > > Thanks for your response! > > Some of these files are from inactive users and I’m quite sure their files > weren’t changed during the rdiff backup! > > Did you read the email from Mike Fleetwood? These are similar error > messages, allegedley caused by retrieving wrong hid and gid on NFS file > systems. I’m using a remote filesystem as well, SSHFS, over here! > > I have applied this patch and running a backup at this very moment. > Unfortunately it’s taking quite long because I had to interrupt a previous > backup and rdiff is busy with ‘regressing’. > > Regards, > Marijn > > On 14 May 2014, at 14:07, Dominic Raferd <domi...@timedicer.co.uk> wrote: > > Marijn, a similar situation was discussed here quite recently, see > http://lists.gnu.org/archive/html/rdiff-backup-users/2014-03/msg00012.html. > The cause in this case, and probably in yours, is that the source data is > changing while the backup is proceeding. I note that in your case some of > the source files that are missing in backup have not changed, but maybe > their metadata changed? What filesystem are they on? > > If you really need to backup the missing files, using a static copy of the > source (e.g. a snapshot) should solve the problem. If the missing files are > unimportant, Chris Wilson suggested a way to stop these messages appearing. > > Dominic > > > _______________________________________________ > rdiff-backup-users mailing list at rdiff-backup-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/rdiff-backup-users > Wiki URL: > http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki > > > > -- > TimeDicer: Free File Recovery from Whenever > > _______________________________________________ > rdiff-backup-users mailing list at rdiff-backup-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/rdiff-backup-users > Wiki URL: > http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki
From a4656fa096219ea22a8d30649f67dd4ea3edadef Mon Sep 17 00:00:00 2001 From: Mike Fleetwood <mike.fleetw...@googlemail.com> Date: Sun, 4 May 2014 14:56:21 +0100 Subject: [PATCH] DEBUG: Log causes of Updated mirror temp file ... does not match Turn on verbosity >= 7 to see. --- rdiff_backup/rpath.py | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/rdiff_backup/rpath.py b/rdiff_backup/rpath.py index a22fb9f..d4d9270 100644 --- a/rdiff_backup/rpath.py +++ b/rdiff_backup/rpath.py @@ -484,17 +484,24 @@ class RORPath: pass elif key == 'sha1': pass # one or other may not have set elif key == 'mirrorname' or key == 'incname': pass - elif (not other.data.has_key(key) or - self.data[key] != other.data[key]): + elif not other.data.has_key(key): + log.Log("Loose compare %s to %s: second has no attribute: %s" % (self.index, other.index, repr(key)), 7) + return 0 + elif self.data[key] != other.data[key]: + log.Log("Loose compare %s to %s: attribute differs: first.data[%s]=%s != second.data[%s]=%s" (self.index, other.index, repr(key), repr(self.data[key]), repr(key), repr(other.data[key])), 7) return 0 if self.lstat() and not self.issym() and Globals.change_ownership: # Now compare ownership. Symlinks don't have ownership try: - if user_group.map_rpath(self) != other.getuidgid(): return 0 + if user_group.map_rpath(self) != other.getuidgid(): + log.Log("Loose compare %s to %s: user group mismatch: user_group.map_rpath(first)=%s != second.getuidgid()=%s" % (self.index, other.index, repr(user_group.map_rpath(self)), repr(other.getuidgid())), 7) + return 0 except KeyError: + log.Log("Loose compare %s to %s: KeyError exception testing user group match" % (self.index, other.index), 7) return 0 # uid/gid might be missing if metadata file is corrupt + log.Log("Loose compare %s to %s: OK" % (self.index, other.index), 7) return 1 def equal_verbose(self, other, check_index = 1, -- 1.7.1
_______________________________________________ rdiff-backup-users mailing list at rdiff-backup-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/rdiff-backup-users Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki