[Python-apps-team] Bug#626113: rdiff-backup: python backtrace when using --verify (IOError: CRC check failed)
Jon Dowland
jmtd at debian.org
Sun May 8 22:32:16 UTC 2011
Package: rdiff-backup
Version: 1.2.8-6
Severity: normal
The first warning in the command below is caused by my last
backup attempt failing due to running out of space on my
backup partition.
I want to clean that up but --check-destination-dir won't
work if it can't create temporary files. So, I need to
clear up some space. Firstly, I'd like to verify all is
well with the repository, which is when I hit this bug:
> $ rdiff-backup --verify $(pwd)/jon
> Warning, two different times for current mirror found
> Warning: Extended Attributes file not found
> Exception 'CRC check failed 0xde29031bL != 0x1cab91f0L' raised of class '<type 'exceptions.IOError'>':
> File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 304, in error_check_Main
> try: Main(arglist)
> File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 324, in Main
> take_action(rps)
> File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 292, in take_action
> elif action == "verify": Verify(rps[0])
> File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 859, in Verify
> return_val = dest_rp.conn.compare.Verify(mirror_rp, inc_rp, verify_time)
> File "/usr/lib/pymodules/python2.6/rdiff_backup/compare.py", line 81, in Verify
> for repo_rorp in repo_iter:
> File "/usr/lib/pymodules/python2.6/rdiff_backup/eas_acls.py", line 207, in join_ea_iter
> for rorp, ea in rorpiter.CollateIterators(rorp_iter, ea_iter):
> File "/usr/lib/pymodules/python2.6/rdiff_backup/rorpiter.py", line 103, in Collate2Iters
> for relem1 in riter1:
> File "/usr/lib/pymodules/python2.6/rdiff_backup/metadata.py", line 274, in iterate
> for record in self.iterate_records():
> File "/usr/lib/pymodules/python2.6/rdiff_backup/metadata.py", line 283, in iterate_records
> next_pos = self.get_next_pos()
> File "/usr/lib/pymodules/python2.6/rdiff_backup/metadata.py", line 266, in get_next_pos
> newbuf = self.fileobj.read(self.blocksize)
> File "/usr/lib/python2.6/gzip.py", line 219, in read
> self._read(readsize)
> File "/usr/lib/python2.6/gzip.py", line 267, in _read
> self._read_eof()
> File "/usr/lib/python2.6/gzip.py", line 304, in _read_eof
> hex(self.crc)))
>
> Traceback (most recent call last):
> File "/usr/bin/rdiff-backup", line 30, in <module>
> rdiff_backup.Main.error_check_Main(sys.argv[1:])
> File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 304, in error_check_Main
> try: Main(arglist)
> File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 324, in Main
> take_action(rps)
> File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 292, in take_action
> elif action == "verify": Verify(rps[0])
> File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 859, in Verify
> return_val = dest_rp.conn.compare.Verify(mirror_rp, inc_rp, verify_time)
> File "/usr/lib/pymodules/python2.6/rdiff_backup/compare.py", line 81, in Verify
> for repo_rorp in repo_iter:
> File "/usr/lib/pymodules/python2.6/rdiff_backup/eas_acls.py", line 207, in join_ea_iter
> for rorp, ea in rorpiter.CollateIterators(rorp_iter, ea_iter):
> File "/usr/lib/pymodules/python2.6/rdiff_backup/rorpiter.py", line 103, in Collate2Iters
> for relem1 in riter1:
> File "/usr/lib/pymodules/python2.6/rdiff_backup/metadata.py", line 274, in iterate
> for record in self.iterate_records():
> File "/usr/lib/pymodules/python2.6/rdiff_backup/metadata.py", line 283, in iterate_records
> next_pos = self.get_next_pos()
> File "/usr/lib/pymodules/python2.6/rdiff_backup/metadata.py", line 266, in get_next_pos
> newbuf = self.fileobj.read(self.blocksize)
> File "/usr/lib/python2.6/gzip.py", line 219, in read
> self._read(readsize)
> File "/usr/lib/python2.6/gzip.py", line 267, in _read
> self._read_eof()
> File "/usr/lib/python2.6/gzip.py", line 304, in _read_eof
> hex(self.crc)))
> IOError: CRC check failed 0xde29031bL != 0x1cab91f0L
It's possible this CRC check failure is due to corruption on
my backup partition -- in which case I'd like rdiff-backup
to tell me which file(s) are corrupt. I don't know whether
the process completed or whether this backtrace was thrown
as part of the entire verify process aborting.
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (150, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.38-rc5+ (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages rdiff-backup depends on:
ii libc6 2.11.2-11 Embedded GNU C Library: Shared lib
ii librsync1 0.9.7-7 rsync remote-delta algorithm libra
ii python 2.6.6-14 interactive high-level object-orie
ii python-support 1.0.13 automated rebuilding support for P
Versions of packages rdiff-backup recommends:
ii python-pylibacl 0.5.0-3+b1 module for manipulating POSIX.1e A
ii python-pyxattr 0.5.0-3+b1 module for manipulating filesystem
rdiff-backup suggests no packages.
-- no debconf information
More information about the Python-apps-team
mailing list