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

Reply via email to