Hi all,
hopefully somebody has some insights on a problem I am having with
rdiff-backup between two FreeBSD machines. In any case, here goes!
I am copying files from root < at > client to backup < at > server (so I am writing
to the rdiff-backup server as a regular user). I am receiving two
exceptions:
/modules/vpo.ko: [Errno 45] Operation not supported
/compat/linux/lib/libresolv-2.3.2.so: [Errno 14] Bad address
for which I do not have an explanation. The backup aborts after some
400-500 files have been copied; the remaining rdiff-backup.tmp file is
0 bytes resp. 32768 bytes.
The file is consistent, though when I '--exclude /modules/vpo.ko', the
first exception occurs on some other file in /modules (vinum.ko) which
previously copied fine. When I skip the modules entirely and only
backup /usr, I get the second exception.
I have verified that I can 'cp' all these faulting files normally;
they are local files, no NFS or samba shares. As far as I know they
should not be in use. The backup runs as root. The error happens also
when excluding device files/special files.
I haven't found much on google so it may be a long shot, but does
anybody happen to have experience with these errors or have a
solution? Any pointers for debugging would be appreciated as well, as
I have never programmed in python.
Cheers,
Walter Hop
Transip B.V.
---
Fun facts:
Versions (client and server):
rdiff-backup-0.12.7 Local/remote mirroring+incremental backup
librsync-0.9.6_1 Library for delta compression of streams
rsync-2.6.3_1 A network file distribution/synchronization utility
python-2.4 An interpreted object-oriented programming language
Client: FreeBSD 4.10-RELEASE-p5
Server: FreeBSD 4.9-RELEASE
Client command line:
rdiff-backup \
--print-statistics \
--terminal-verbosity 8 \
--no-change-dir-inc-perms \ # also tried with this removed
--no-hard-links \ # also tried with this removed
--exclude-device-files \ # also --exclude-special-files
--remote-schema 'ssh %s rdiff-backup --server--restrict /home/backup/ns0/data' \
/ backup < at > backup::/home/backup/ns0/data
Server authorized_keys2 entry:
command="rdiff-backup --server --restrict /home/backup/ns0/data" ssh-dss [...]
# ls -alo /modules/vpo.ko /modules/vinum.ko /usr/compat/linux/lib/libresolv-2.3.2.so
-r-xr-xr-x 1 root wheel - 308459 Dec 12 05:21 /modules/vinum.ko*
-r-xr-xr-x 1 root wheel - 20598 Dec 12 05:21 /modules/vpo.ko*
-rwxr-xr-x 1 root wheel - 60716 Nov 5 2003 /usr/compat/linux/lib/libresolv-2.3.2.so*
Excerpts out of logfile with exceptions (the same messages are on
server in error log):
--- Exception 1
[...]
Processing changed file modules/vn.ko
Regular copying ('modules', 'vn.ko') to /home/backup/ns0/data/modules/rdiff-backup.tmp.475
Writing file object to /home/backup/ns0/data/modules/rdiff-backup.tmp.475
Copying attributes from ('modules', 'vn.ko') to /home/backup/ns0/data/modules/rdiff-backup.tmp.475
Setting time of /home/backup/ns0/data/modules/rdiff-backup.tmp.475 to 1102825273
Renaming /home/backup/ns0/data/modules/rdiff-backup.tmp.475 to /home/backup/ns0/data/modules/vn.ko
Processing changed file modules/vpo.ko
Regular copying ('modules', 'vpo.ko') to /home/backup/ns0/data/modules/rdiff-backup.tmp.476
Writing file object to /home/backup/ns0/data/modules/rdiff-backup.tmp.476
Exception '[Errno 45] Operation not supported' raised of class 'exceptions.IOError':
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/robust.py", line 32, in check_common_error
try: return function(*args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 950, in read
def read(self, length = -1): return self.file.read(length)
Sending back exception [Errno 45] Operation not supported of type exceptions.IOError:
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 329, in answer_request
result = apply(eval(request.function_string), argument_list)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 475, in readfromid
if length is None: return cls.vfiles[id].read()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 285, in read
if not self.addtobuffer(): break
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 315, in addtobuffer
self.addfromfile("f")
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 214, in addfromfile
[Globals.blocksize])
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/robust.py", line 32, in check_common_error
try: return function(*args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 950, in read
def read(self, length = -1): return self.file.read(length)
Traceback (most recent call last):
Exception '[Errno 45] Operation not supported' raised of class 'exceptions.IOError':
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/robust.py", line 32, in check_common_error
try: return function(*args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 96, in copy
if rpin.isreg(): copy_reg_file(rpin, rpout, compress)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 118, in copy_reg_file
rpout.write_from_fileobj(rpin.open("rb"), compress = compress)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 825, in write_from_fileobj
copyfileobj(fp, outfp)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 58, in copyfileobj
inbuf = inputfp.read(blocksize)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 950, in read
def read(self, length = -1): return self.file.read(length)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 117, in read
if not self.addtobuffer(): break
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 132, in addtobuffer
type, data = self.iwf._get()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 401, in _get
if not self.buf: self.buf += self.file.read()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 508, in read
return self.connection.VirtualFile.readfromid(self.id, length)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 440, in __call__
return apply(self.connection.reval, (self.name,) + args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 362, in reval
if isinstance(result, Exception): raise result
Sending back exception [Errno 45] Operation not supported of type exceptions.IOError:
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 329, in answer_request
result = apply(eval(request.function_string), argument_list)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/backup.py", line 210, in patch
ITR(diff.index, diff)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rorpiter.py", line 279, in __call__
last_branch.fast_process(*args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/backup.py", line 456, in fast_process
if self.patch_to_temp(rp, diff_rorp, tf):
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/backup.py", line 477, in patch_to_temp
(diff_rorp, new)) == 0: return 0
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/robust.py", line 32, in check_common_error
try: return function(*args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 96, in copy
if rpin.isreg(): copy_reg_file(rpin, rpout, compress)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 118, in copy_reg_file
rpout.write_from_fileobj(rpin.open("rb"), compress = compress)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 825, in write_from_fileobj
copyfileobj(fp, outfp)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 58, in copyfileobj
inbuf = inputfp.read(blocksize)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 950, in read
def read(self, length = -1): return self.file.read(length)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 117, in read
if not self.addtobuffer(): break
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 132, in addtobuffer
type, data = self.iwf._get()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 401, in _get
if not self.buf: self.buf += self.file.read()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 508, in read
return self.connection.VirtualFile.readfromid(self.id, length)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 440, in __call__
return apply(self.connection.reval, (self.name,) + args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 362, in reval
if isinstance(result, Exception): raise result
File "/usr/local/bin/rdiff-backup", line 23, in ?
rdiff_backup.Main.Main(sys.argv[1:])
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/Main.py", line 254, in Main
take_action(rps)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/Main.py", line 226, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/Main.py", line 271, in Backup
backup.Mirror(rpin, rpout)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/backup.py", line 36, in Mirror
DestS.patch(dest_rpath, source_diffiter)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 440, in __call__
return apply(self.connection.reval, (self.name,) + args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 362, in reval
if isinstance(result, Exception): raise result
IOError: [Errno 45] Operation not supported
Traceback (most recent call last):
File "/usr/local/bin/rdiff-backup", line 23, in ?
rdiff_backup.Main.Main(sys.argv[1:])
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/Main.py", line 254, in Main
take_action(rps)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/Main.py", line 224, in take_action
connection.PipeConnection(sys.stdin, sys.stdout).Server()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 347, in Server
self.get_response(-1)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 309, in get_response
try: req_num, object = self._get()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 225, in _get
raise ConnectionReadError("Truncated header string (problem "
rdiff_backup.connection.ConnectionReadError: Truncated header string (problem probably originated remotely)
Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method GzipFile.__del__ of <gzip open file '/home/backup/ns0/data/rdiff-backup-data/file_statistics.2004-12-29T01:42:44+01:00.data.gz', mode 'wb' at 0x81ebc80 0x82e812c>> ignored
Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method GzipFile.__del__ of <gzip open file '/home/backup/ns0/data/rdiff-backup-data/error_log.2004-12-29T01:42:44+01:00.data.gz', mode 'wb' at 0x81ebb60 0x82e62cc>> ignored
Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method GzipFile.__del__ of <gzip open file '/home/backup/ns0/data/rdiff-backup-data/mirror_metadata.2004-12-29T01:42:44+01:00.snapshot.gz', mode 'wb' at 0x81ebcc8 0x82e816c>> ignored
--- Exception 2
[...]
Processing changed file compat/linux/lib/libresolv-2.3.2.so
Regular copying ('compat', 'linux', 'lib', 'libresolv-2.3.2.so') to /home/backup/ns0/data/compat/linux/lib/rdiff-backup.tmp.566
Writing file object to /home/backup/ns0/data/compat/linux/lib/rdiff-backup.tmp.566
Exception '[Errno 14] Bad address' raised of class 'exceptions.IOError':
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/robust.py", line 32, in check_common_error
try: return function(*args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 950, in read
def read(self, length = -1): return self.file.read(length)
Sending back exception [Errno 14] Bad address of type exceptions.IOError:
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 329, in answer_request
result = apply(eval(request.function_string), argument_list)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 475, in readfromid
if length is None: return cls.vfiles[id].read()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 285, in read
if not self.addtobuffer(): break
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 315, in addtobuffer
self.addfromfile("f")
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 214, in addfromfile
[Globals.blocksize])
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/robust.py", line 32, in check_common_error
try: return function(*args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 950, in read
def read(self, length = -1): return self.file.read(length)
Traceback (most recent call last):
File "/usr/local/bin/rdiff-backup", line 23, in ?
rdiff_backup.Main.Main(sys.argv[1:])
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/Main.py", line 254, in Main
take_action(rps)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/Main.py", line 226, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/Main.py", line 271, in Backup
backup.Mirror(rpin, rpout)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/backup.py", line 36, in Mirror
DestS.patch(dest_rpath, source_diffiter)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 440, in __call__
return apply(self.connection.reval, (self.name,) + args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 362, in reval
if isinstance(result, Exception): raise result
IOError: [Errno 14] Bad address
Exception '[Errno 14] Bad address' raised of class 'exceptions.IOError':
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/robust.py", line 32, in check_common_error
try: return function(*args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 96, in copy
if rpin.isreg(): copy_reg_file(rpin, rpout, compress)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 118, in copy_reg_file
rpout.write_from_fileobj(rpin.open("rb"), compress = compress)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 825, in write_from_fileobj
copyfileobj(fp, outfp)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 58, in copyfileobj
inbuf = inputfp.read(blocksize)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 950, in read
def read(self, length = -1): return self.file.read(length)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 117, in read
if not self.addtobuffer(): break
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 132, in addtobuffer
type, data = self.iwf._get()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 401, in _get
if not self.buf: self.buf += self.file.read()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 508, in read
return self.connection.VirtualFile.readfromid(self.id, length)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 440, in __call__
return apply(self.connection.reval, (self.name,) + args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 362, in reval
if isinstance(result, Exception): raise result
Sending back exception [Errno 14] Bad address of type exceptions.IOError:
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 329, in answer_request
result = apply(eval(request.function_string), argument_list)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/backup.py", line 210, in patch
ITR(diff.index, diff)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rorpiter.py", line 279, in __call__
last_branch.fast_process(*args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/backup.py", line 456, in fast_process
if self.patch_to_temp(rp, diff_rorp, tf):
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/backup.py", line 477, in patch_to_temp
(diff_rorp, new)) == 0: return 0
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/robust.py", line 32, in check_common_error
try: return function(*args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 96, in copy
if rpin.isreg(): copy_reg_file(rpin, rpout, compress)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 118, in copy_reg_file
rpout.write_from_fileobj(rpin.open("rb"), compress = compress)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 825, in write_from_fileobj
copyfileobj(fp, outfp)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 58, in copyfileobj
inbuf = inputfp.read(blocksize)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/rpath.py", line 950, in read
def read(self, length = -1): return self.file.read(length)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 117, in read
if not self.addtobuffer(): break
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 132, in addtobuffer
type, data = self.iwf._get()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/iterfile.py", line 401, in _get
if not self.buf: self.buf += self.file.read()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 508, in read
return self.connection.VirtualFile.readfromid(self.id, length)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 440, in __call__
return apply(self.connection.reval, (self.name,) + args)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 362, in reval
if isinstance(result, Exception): raise result
Traceback (most recent call last):
File "/usr/local/bin/rdiff-backup", line 23, in ?
rdiff_backup.Main.Main(sys.argv[1:])
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/Main.py", line 254, in Main
take_action(rps)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/Main.py", line 224, in take_action
connection.PipeConnection(sys.stdin, sys.stdout).Server()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 347, in Server
self.get_response(-1)
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 309, in get_response
try: req_num, object = self._get()
File "/usr/local/lib/python2.4/site-packages/rdiff_backup/connection.py", line 225, in _get
raise ConnectionReadError("Truncated header string (problem "
rdiff_backup.connection.ConnectionReadError: Truncated header string (problem probably originated remotely)
Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method GzipFile.__del__ of <gzip open file '/home/backup/ns0/data/rdiff-backup-data/file_statistics.2004-12-29T02:15:32+01:00.data.gz', mode 'wb' at 0x81ebc80 0x82e812c>> ignored
Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method GzipFile.__del__ of <gzip open file '/home/backup/ns0/data/rdiff-backup-data/error_log.2004-12-29T02:15:32+01:00.data.gz', mode 'wb' at 0x81ebb60 0x82e62cc>> ignored
Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method GzipFile.__del__ of <gzip open file '/home/backup/ns0/data/rdiff-backup-data/mirror_metadata.2004-12-29T02:15:32+01:00.snapshot.gz', mode 'wb' at 0x81ebcc8 0x82e816c>> ignored
--
Walter Hop <walter < at > transip.nl> | tel 0182-504424 | fax 0182-504460
Transip B.V. | http://www.transip.nl/ | Mensen met verstand van zaken.
