[rdiff-backup-users] Error for incremental backup on Mac
Got following error, I am not familiar with troubleshooting with rdiff-backup, can anyone suggest some way for me to troubleshoot ? Thanks in advance. SK Previous backup seems to have failed, regressing destination now. Exception 'Bad index order: ('long_filename_data', '1') = ('ctse', 'Library', 'Mail', 'V2', 'imap-cathypy...@gmail.com@imap.gmail.com', '[Gmail].mbox', 'All Mail.mbox', '05D20631-00E8-46C9-A4DC-3AC8C76717F5', 'Data', '2', '6', 'Attachments', '62150')' raised of class 'type 'exceptions.AssertionError'': File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 306, in error_check_Main try: Main(arglist) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 326, in Main take_action(rps) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 282, in take_action elif action == backup: Backup(rps[0], rps[1]) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 339, in Backup backup_final_init(rpout) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 504, in backup_final_init checkdest_if_necessary(rpout) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 938, in checkdest_if_necessary dest_rp.conn.regress.Regress(dest_rp) File /Library/Python/2.7/site-packages/rdiff_backup/regress.py, line 71, in Regress for rf in iterate_meta_rfs(mirror_rp, inc_rpath): ITR(rf.index, rf) File /Library/Python/2.7/site-packages/rdiff_backup/rorpiter.py, line 275, in __call__ assert 0, Bad index order: %s = %s % (self.index, index) Traceback (most recent call last): File /usr/local/bin/rdiff-backup, line 30, in module rdiff_backup.Main.error_check_Main(sys.argv[1:]) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 306, in error_check_Main try: Main(arglist) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 326, in Main take_action(rps) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 282, in take_action elif action == backup: Backup(rps[0], rps[1]) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 339, in Backup backup_final_init(rpout) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 504, in backup_final_init checkdest_if_necessary(rpout) File /Library/Python/2.7/site-packages/rdiff_backup/Main.py, line 938, in checkdest_if_necessary dest_rp.conn.regress.Regress(dest_rp) File /Library/Python/2.7/site-packages/rdiff_backup/regress.py, line 71, in Regress for rf in iterate_meta_rfs(mirror_rp, inc_rpath): ITR(rf.index, rf) File /Library/Python/2.7/site-packages/rdiff_backup/rorpiter.py, line 275, in __call__ assert 0, Bad index order: %s = %s % (self.index, index) AssertionError: Bad index order: ('long_filename_data', '1') = ('ctse', 'Library', 'Mail', 'V2', 'imap-cathypy...@gmail.com@imap.gmail.com', '[Gmail].mbox', 'All Mail.mbox', '05D20631-00E8-46C9-A4DC-3AC8C76717F5', 'Data', '2', '6', 'Attachments', '62150')___ 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
[rdiff-backup-users] Incremental backup runs extremely long time
Further to my recent report on 2012-10-17 about the fix to make rdiff-backup works on Mac OS X. A backup was started on an iMac for 210GB of data, so far so good, the initial backup was 3 hrs and incr backup around 15 min which is reasonable for normal home user. A month later, I started another backup on another iMac for 300GB of data. Have the following observations: (1) Discovered that the --exclude doesn't work if the directory doesn't exist. (2) Discovered that the --exclude doesn't work for wildcard like --exclude /**.Spotlight-V100 \ --exclude /automount** \ --exclude /cores** \ --exclude /Network** \ --exclude /private/tmp** \ --exclude /private/var/vm** \ --exclude /tmp** \ --exclude /Volumes/** \ nor --exclude /tmp* \ but only works for --exclude /**/.Spotlight-V100 \ --exclude /**/Downloads \ --exclude /**/.Trash \ --exclude /**/Library/Caches \ --exclude /**/tmp \ (3) The initial backup was 4 hrs (reasonable) but every incr backup takes 10 hrs which is abnormal, and it runs at 100% of a CPU core (the mac has quad core Intel CPU). As a normal home user, there is only less than 1GB changes everyday. Following is the session statistics. StartTime 1355880519.00 (Wed Dec 19 09:28:39 2012) EndTime 1355917466.22 (Wed Dec 19 19:44:26 2012) ElapsedTime 36947.22 (10 hours 15 minutes 47.22 seconds) SourceFiles 1178810 SourceFileSize 311932438922 (291 GB) MirrorFiles 1178805 MirrorFileSize 311931930965 (291 GB) NewFiles 35 NewFileSize 906566 (885 KB) DeletedFiles 30 DeletedFileSize 144514 (141 KB) ChangedFiles 338 ChangedSourceSize 160572782 (153 MB) ChangedMirrorSize 160826877 (153 MB) IncrementFiles 415 IncrementFileSize 7228028 (6.89 MB) TotalDestinationSizeChange 7735985 (7.38 MB) Errors 0 (4) During the initial backup, it says about 200 files with error like: UpdateError Users/skwong/gtk/inst/bin/automake-1.10 Updated mirror temp file /Volumes/BK2/Users/skwong/gtk/inst/bin/rdiff-backup.tmp.889172 does not match source but I can open the source file without problem. And the statistics as shown above also says Errors 0. During the incremental backup, same messages appear for those files again. (5) I rerun the whole backup from 0 again, then notice that it runs only at 11% of a CPU core but the inactive memory grow from 0 to 10GB (until total of the 16GB are all used) within 10 min. For (1) and (2), may be I mis-understand the operations about rdiff-backup, and might not be a problem. For (5), inactive memory doesn't really matter as the system can reclaim it as needed, but just wonder if that's normal. For (3), that's really out of my expectation. Not only it takes 2.5x more than the initial new backup time, if CPU usage is also taking into consideration, then, that is 25x; but also that make the backup not practical. Also, as the backup on the other iMac runs quite normal, I really doubt there may be problem in my files which may trigger hidden bug. Can anyone suggest on how to debug the problem. Also, don't know what's wrong with (4). Thanks in advance. SK ___ 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
Re: [rdiff-backup-users] OverflowError: signed integer is greater than maximum
Thanks for the reply. Yes I did check the related pages. And I tried to use the Python version 2.6 which I assume should not suffer from the problem. But it does suffer. At that time, I was using Mac OS 10.6 which is assumed to be 64 bits. Until recently, test was done with Mac OS 10.8 with Python 2.7, still the same problem. So I made the fix. B.Rgds SK On 21 Oct 2012, at 6:28 AM, Joe Steele wrote: It looks like you were encountering the python bug identified here: http://bugs.python.org/issue1747858 Before their fix, the uid was being converted to a (32 bit) signed int, which, as you have noted, isn't big enough. After the fix, the uid is converted to a long. I don't know anything about Mac OS X, but on linux, a long is either 32 bits or 64 bits, depending on the architecture. Their fix should obviously work on 64 bit systems. (And on 32 bit systems, it's probably unlikely that you will encounter 32 bit uids anyway.) It also looks like their fix was implemented in python v2.5.3+, so I am a little puzzled as to why you were experiencing problems with the versions of python that you mention, if indeed you are using a 64 bit version. In any case, it looks like you found a fix that works for you. --Joe On 10/17/2012 9:43 AM, Sai kee Wong wrote: After the orignal post, there is no feedback. Recently, I tried to fix the problem. I didn't know any about Python, started debugging by inserting print statement. Figured out in the Mac, some times it has file with uid and gid set to 4294967294 (nobody). It seems Python doesn't accept unsigned 32-bits. And it crashed when calling the os.chown() with this high value. I don't know how to make the os.chown() to accept unsigned int instead of signed 32-bits int. So I searched the web and add a function to change too big value to -ve, in this case is -2. Then it works. As in previous posts, somebodies asked similar questions and got no helpful response; I published the solution here such that if anyone is suffering from the problem can adopt the fix. Also, please remind me if I am doing something wrong. Thanks ! SK Fix: After installed the rdiff-backup 1.3.3, find the file rpath.py In Mac, it is in /Library/Python/2.7/site-packages/rdiff_backup/rpath.py At line 977, the line was else: os.chown(self.path, uid, gid) change it to else: os.chown(self.path, int32(uid), int32(gid)) At line 46, add following def int32(x): if x0x: raise OverflowError if x0x7FFF: x=int(0x1-x) if x2147483648: return -x else: return -2147483648 return x On 11 Apr 2011, at 9:04 AM, Sai kee Wong wrote: I'm new to the rdiff-backup I'm running Mac OS 10.6.6, installed the rdiff-backup 1.3.3 and tried to backup 110GB of data, at around 60GB, it stopped with following error: Exception 'signed integer is greater than maximum' raised of class 'type 'exceptions.OverflowError'': File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 306, in error_check_Main try: Main(arglist) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 326, in Main take_action(rps) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 282, in take_action elif action == backup: Backup(rps[0], rps[1]) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 348, in Backup backup.Mirror(rpin, rpout) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 38, in Mirror DestS.patch(dest_rpath, source_diffiter) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 240, in patch ITR(diff.index, diff) File /Library/Python/2.6/site-packages/rdiff_backup/rorpiter.py, line 281, in __call__ last_branch.fast_process(*args) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 533, in fast_process if self.patch_to_temp(mirror_rp, diff_rorp, tf): File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 563, in patch_to_temp rpath.copy_attribs(diff_rorp, new) File /Library/Python/2.6/site-packages/rdiff_backup/rpath.py, line 180, in copy_attribs rpout.chown(*rpout.conn.user_group.map_rpath(rpin)) File /Library/Python/2.6/site-packages/rdiff_backup/rpath.py, line 977, in chown else: os.chown(self.path, uid, gid) Traceback (most recent call last): File /usr/local/bin/rdiff-backup, line 30, in module rdiff_backup.Main.error_check_Main(sys.argv[1:]) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 306, in error_check_Main try: Main(arglist) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 326, in Main take_action(rps) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 282, in take_action elif action == backup: Backup(rps[0], rps[1]) File
Re: [rdiff-backup-users] OverflowError: signed integer is greater than maximum
After the orignal post, there is no feedback. Recently, I tried to fix the problem. I didn't know any about Python, started debugging by inserting print statement. Figured out in the Mac, some times it has file with uid and gid set to 4294967294 (nobody). It seems Python doesn't accept unsigned 32-bits. And it crashed when calling the os.chown() with this high value. I don't know how to make the os.chown() to accept unsigned int instead of signed 32-bits int. So I searched the web and add a function to change too big value to -ve, in this case is -2. Then it works. As in previous posts, somebodies asked similar questions and got no helpful response; I published the solution here such that if anyone is suffering from the problem can adopt the fix. Also, please remind me if I am doing something wrong. Thanks ! SK Fix: After installed the rdiff-backup 1.3.3, find the file rpath.py In Mac, it is in /Library/Python/2.7/site-packages/rdiff_backup/rpath.py At line 977, the line was else: os.chown(self.path, uid, gid) change it to else: os.chown(self.path, int32(uid), int32(gid)) At line 46, add following def int32(x): if x0x: raise OverflowError if x0x7FFF: x=int(0x1-x) if x2147483648: return -x else: return -2147483648 return x On 11 Apr 2011, at 9:04 AM, Sai kee Wong wrote: I'm new to the rdiff-backup I'm running Mac OS 10.6.6, installed the rdiff-backup 1.3.3 and tried to backup 110GB of data, at around 60GB, it stopped with following error: Exception 'signed integer is greater than maximum' raised of class 'type 'exceptions.OverflowError'': File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 306, in error_check_Main try: Main(arglist) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 326, in Main take_action(rps) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 282, in take_action elif action == backup: Backup(rps[0], rps[1]) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 348, in Backup backup.Mirror(rpin, rpout) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 38, in Mirror DestS.patch(dest_rpath, source_diffiter) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 240, in patch ITR(diff.index, diff) File /Library/Python/2.6/site-packages/rdiff_backup/rorpiter.py, line 281, in __call__ last_branch.fast_process(*args) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 533, in fast_process if self.patch_to_temp(mirror_rp, diff_rorp, tf): File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 563, in patch_to_temp rpath.copy_attribs(diff_rorp, new) File /Library/Python/2.6/site-packages/rdiff_backup/rpath.py, line 180, in copy_attribs rpout.chown(*rpout.conn.user_group.map_rpath(rpin)) File /Library/Python/2.6/site-packages/rdiff_backup/rpath.py, line 977, in chown else: os.chown(self.path, uid, gid) Traceback (most recent call last): File /usr/local/bin/rdiff-backup, line 30, in module rdiff_backup.Main.error_check_Main(sys.argv[1:]) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 306, in error_check_Main try: Main(arglist) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 326, in Main take_action(rps) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 282, in take_action elif action == backup: Backup(rps[0], rps[1]) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 348, in Backup backup.Mirror(rpin, rpout) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 38, in Mirror DestS.patch(dest_rpath, source_diffiter) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 240, in patch ITR(diff.index, diff) File /Library/Python/2.6/site-packages/rdiff_backup/rorpiter.py, line 281, in __call__ last_branch.fast_process(*args) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 533, in fast_process if self.patch_to_temp(mirror_rp, diff_rorp, tf): File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 563, in patch_to_temp rpath.copy_attribs(diff_rorp, new) File /Library/Python/2.6/site-packages/rdiff_backup/rpath.py, line 180, in copy_attribs rpout.chown(*rpout.conn.user_group.map_rpath(rpin)) File /Library/Python/2.6/site-packages/rdiff_backup/rpath.py, line 977, in chown else: os.chown(self.path, uid, gid) OverflowError: signed integer is greater than maximum Believe it should be problem with the 64 bits OS. Tried python 2.6.1 and 2.6.6 both give above error. Tried also 2.7.1 but gives Segmentation fault Search through the rdiff-backup-users Archives but couldn't find any cue to solve the problem. Thanks in advance
[rdiff-backup-users] OverflowError: signed integer is greater than maximum
I'm new to the rdiff-backup I'm running Mac OS 10.6.6, installed the rdiff-backup 1.3.3 and tried to backup 110GB of data, at around 60GB, it stopped with following error: Exception 'signed integer is greater than maximum' raised of class 'type 'exceptions.OverflowError'': File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 306, in error_check_Main try: Main(arglist) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 326, in Main take_action(rps) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 282, in take_action elif action == backup: Backup(rps[0], rps[1]) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 348, in Backup backup.Mirror(rpin, rpout) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 38, in Mirror DestS.patch(dest_rpath, source_diffiter) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 240, in patch ITR(diff.index, diff) File /Library/Python/2.6/site-packages/rdiff_backup/rorpiter.py, line 281, in __call__ last_branch.fast_process(*args) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 533, in fast_process if self.patch_to_temp(mirror_rp, diff_rorp, tf): File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 563, in patch_to_temp rpath.copy_attribs(diff_rorp, new) File /Library/Python/2.6/site-packages/rdiff_backup/rpath.py, line 180, in copy_attribs rpout.chown(*rpout.conn.user_group.map_rpath(rpin)) File /Library/Python/2.6/site-packages/rdiff_backup/rpath.py, line 977, in chown else: os.chown(self.path, uid, gid) Traceback (most recent call last): File /usr/local/bin/rdiff-backup, line 30, in module rdiff_backup.Main.error_check_Main(sys.argv[1:]) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 306, in error_check_Main try: Main(arglist) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 326, in Main take_action(rps) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 282, in take_action elif action == backup: Backup(rps[0], rps[1]) File /Library/Python/2.6/site-packages/rdiff_backup/Main.py, line 348, in Backup backup.Mirror(rpin, rpout) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 38, in Mirror DestS.patch(dest_rpath, source_diffiter) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 240, in patch ITR(diff.index, diff) File /Library/Python/2.6/site-packages/rdiff_backup/rorpiter.py, line 281, in __call__ last_branch.fast_process(*args) File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 533, in fast_process if self.patch_to_temp(mirror_rp, diff_rorp, tf): File /Library/Python/2.6/site-packages/rdiff_backup/backup.py, line 563, in patch_to_temp rpath.copy_attribs(diff_rorp, new) File /Library/Python/2.6/site-packages/rdiff_backup/rpath.py, line 180, in copy_attribs rpout.chown(*rpout.conn.user_group.map_rpath(rpin)) File /Library/Python/2.6/site-packages/rdiff_backup/rpath.py, line 977, in chown else: os.chown(self.path, uid, gid) OverflowError: signed integer is greater than maximum Believe it should be problem with the 64 bits OS. Tried python 2.6.1 and 2.6.6 both give above error. Tried also 2.7.1 but gives Segmentation fault Search through the rdiff-backup-users Archives but couldn't find any cue to solve the problem. Thanks in advance for help. B.rgds SK ___ rdiff-backup-users mailing list at rdiff-backup-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/rdiff-backup-users Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki