I was trying to set up a remote backup using rdiff, when I ran into the following error, because I was running 2 different versions of rdiff-backup:
Unfortunately, the server I'm trying to backup is running Ubuntu Hardy 8.08.1 - and has no newer version than v1.1.15 (neither hardy-updates, nor hardy-backports).Warning: Local version 1.2.8 does not match remote version 1.1.15.
Sending back exception
Warning Security Violation!
Bad request for function: rpath.make_file_dict
with arguments: ['/']
of type <class 'rdiff_backup.Security.Violation'>:
File "/var/lib/python-support/python2.5/rdiff_backup/connection.py", line 333, in answer_request
Security.vet_request(request, argument_list)
File "/var/lib/python-support/python2.5/rdiff_backup/Security.py", line 221, in vet_request
raise_violation(request, arglist)
File "/var/lib/python-support/python2.5/rdiff_backup/Security.py", line 206, in raise_violation
arglist))
Exception '
Warning Security Violation!
Bad request for function: rpath.make_file_dict
with arguments: ['/']
' raised of class '<class 'rdiff_backup.Security.Violation'>':
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 321, in Main
rps = map(SetConnections.cmdpair2rp, cmdpairs)
File "/usr/lib/pymodules/python2.6/rdiff_backup/SetConnections.py", line 78, in cmdpair2rp
return rpath.RPath(conn, filename).normalize()
File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 884, in __init__
else: self.setdata()
File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 908, in setdata
self.data = self.conn.rpath.make_file_dict(self.path)
File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 450, in __call__
return apply(self.connection.reval, (self.name,) + args)
File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 370, in reval
if isinstance(result, Exception): raise result
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 321, in Main
rps = map(SetConnections.cmdpair2rp, cmdpairs)
File "/usr/lib/pymodules/python2.6/rdiff_backup/SetConnections.py", line 78, in cmdpair2rp
return rpath.RPath(conn, filename).normalize()
File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 884, in __init__
else: self.setdata()
File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 908, in setdata
self.data = self.conn.rpath.make_file_dict(self.path)
File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 450, in __call__
return apply(self.connection.reval, (self.name,) + args)
File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 370, in reval
if isinstance(result, Exception): raise result
rdiff_backup.Security.Violation:
Warning Security Violation!
Bad request for function: rpath.make_file_dict
with arguments: ['/']
So now, I was trying to find a way to make this backup work, without having to upgrade our stable production server.
Thanks to an answer by a user in a forum, I was pointed to andol's launchpad PPA repository, that contains recent rdiff-backup versions for different Ubuntu builds:
https://launchpad.net/~rdiff-backup-pkgs/+archive/ppa
I just added it to my apt-sources and updated rdiff-backup to v1.2.8 on hardy.