Package: rdiff-backup
Version: 1.2.5-1
Severity: normal

I've had a backup process terminate abnormally halfway (lost
connectivity to the destination mount), possibly corrupting or not
flushing some (parts?) of the files. After that, the backup
directory is no longer usable, and the standard process to rollback a
failed backup does not work. TBH I don't know if this really should be
considered a bug, i.e. is the program supposed to try and fix
a partially corrupted backup dir by doing a rollback to its earlier
known-good state, or not.

Here is the error log:

rdiff-backup --check-destination-dir /path/to/backup/dir
Exception 'Error -3 while decompressing: invalid stored block lengths'
raised of class '<class 'zlib.error'>': File
"/var/lib/python-support/python2.5/rdiff_backup/robust.py", line 32, in
check_common_error try: return function(*args) File
"/var/lib/python-support/python2.5/rdiff_backup/restore.py", line 462,
in get_fp current_fp = self.get_first_fp() File
"/var/lib/python-support/python2.5/rdiff_backup/restore.py", line 499,
in get_first_fp rpath.copyfileobj(fp, current_fp) File
"/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 62, in
copyfileobj inbuf = inputfp.read(blocksize) File
"/usr/lib/python2.5/gzip.py", line 227, in read self._read(readsize)
  File "/usr/lib/python2.5/gzip.py", line 279, in _read
    uncompress = self.decompress.decompress(buf)

Exception 'Error -3 while decompressing: invalid stored block lengths'
raised of class '<class 'zlib.error'>': File
"/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 304, in
error_check_Main try: Main(arglist) File
"/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 324, in
Main take_action(rps) File
"/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 282, in
take_action elif action == "check-destination-dir": CheckDest(rps[0])
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line
857, in CheckDest dest_rp.conn.regress.Regress(dest_rp) File
"/var/lib/python-support/python2.5/rdiff_backup/regress.py", line 71,
in Regress for rf in iterate_meta_rfs(mirror_rp, inc_rpath):
ITR(rf.index, rf) File
"/var/lib/python-support/python2.5/rdiff_backup/rorpiter.py", line 281,
in __call__ last_branch.fast_process(*args) File
"/var/lib/python-support/python2.5/rdiff_backup/regress.py", line 268,
in fast_process if rf.metadata_rorp.isreg():
self.restore_orig_regfile(rf) File
"/var/lib/python-support/python2.5/rdiff_backup/regress.py", line 296,
in restore_orig_regfile
rf.mirror_rp.write_from_fileobj(rf.get_restore_fp()) File
"/var/lib/python-support/python2.5/rdiff_backup/restore.py", line 488,
in get_restore_fp return robust.check_common_error(error_handler,
get_fp) File
"/var/lib/python-support/python2.5/rdiff_backup/robust.py", line 32, in
check_common_error try: return function(*args) File
"/var/lib/python-support/python2.5/rdiff_backup/restore.py", line 462,
in get_fp current_fp = self.get_first_fp() File
"/var/lib/python-support/python2.5/rdiff_backup/restore.py", line 499,
in get_first_fp rpath.copyfileobj(fp, current_fp) File
"/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 62, in
copyfileobj inbuf = inputfp.read(blocksize) File
"/usr/lib/python2.5/gzip.py", line 227, in read self._read(readsize)
File "/usr/lib/python2.5/gzip.py", line 279, in _read uncompress =
self.decompress.decompress(buf)

Traceback (most recent call last):
  File "/usr/bin/rdiff-backup", line 30, in <module>
    rdiff_backup.Main.error_check_Main(sys.argv[1:])
  File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line
304, in error_check_Main try: Main(arglist)
  File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line
324, in Main take_action(rps)
  File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line
282, in take_action elif action == "check-destination-dir":
CheckDest(rps[0]) File
"/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 857, in
CheckDest dest_rp.conn.regress.Regress(dest_rp) File
"/var/lib/python-support/python2.5/rdiff_backup/regress.py", line 71,
in Regress for rf in iterate_meta_rfs(mirror_rp, inc_rpath):
ITR(rf.index, rf) File
"/var/lib/python-support/python2.5/rdiff_backup/rorpiter.py", line 281,
in __call__ last_branch.fast_process(*args) File
"/var/lib/python-support/python2.5/rdiff_backup/regress.py", line 268,
in fast_process if rf.metadata_rorp.isreg():
self.restore_orig_regfile(rf) File
"/var/lib/python-support/python2.5/rdiff_backup/regress.py", line 296,
in restore_orig_regfile
rf.mirror_rp.write_from_fileobj(rf.get_restore_fp()) File
"/var/lib/python-support/python2.5/rdiff_backup/restore.py", line 488,
in get_restore_fp return robust.check_common_error(error_handler,
get_fp) File
"/var/lib/python-support/python2.5/rdiff_backup/robust.py", line 32, in
check_common_error try: return function(*args) File
"/var/lib/python-support/python2.5/rdiff_backup/restore.py", line 462,
in get_fp current_fp = self.get_first_fp() File
"/var/lib/python-support/python2.5/rdiff_backup/restore.py", line 499,
in get_first_fp rpath.copyfileobj(fp, current_fp) File
"/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 62, in
copyfileobj inbuf = inputfp.read(blocksize) File
"/usr/lib/python2.5/gzip.py", line 227, in read self._read(readsize)
File "/usr/lib/python2.5/gzip.py", line 279, in _read uncompress =
self.decompress.decompress(buf) zlib.error: Error -3 while
decompressing: invalid stored block lengths



--- System information. ---
Architecture: amd64
Kernel:       Linux 2.6.28-rm

Debian Release: 5.0
  500 stable          apt-proxy.i4 

--- Package information. ---
Depends             (Version) | Installed
=============================-+-===========
libc6              (>= 2.7-1) | 2.7-18
librsync1          (>= 0.9.6) | 0.9.7-5
python               (<< 2.6) | 2.5.2-3
python               (>= 2.5) | 2.5.2-3
python-support     (>= 0.7.1) | 0.8.4




-- 
With respect,
Roman



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to