Bug 465574 - rdiff-backup fails to complete backup
Summary: rdiff-backup fails to complete backup
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: rdiff-backup
Version: 10
Hardware: All
OS: Linux
medium
high
Target Milestone: ---
Assignee: Kevin Fenzi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-10-03 22:14 UTC by eric
Modified: 2008-12-24 03:30 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2008-12-24 03:30:32 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description eric 2008-10-03 22:14:10 UTC
Description of problem:Backup fails


Version-Release number of selected component (if applicable): 1.2.1-1.fc10


How reproducible: Very


Steps to Reproduce:
1. execute rdiff-backup -b --print-statistics /home/christensene 192.168.1.10::/home/christensene/backup
2. log into the system
3. witness failure after several minutes
  
Actual results: 
Previous backup seems to have failed, regressing destination now.
Exception '[Errno 22] Invalid argument' raised of class '<type 'exceptions.IOError'>':
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 302, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 322, in Main
    take_action(rps)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 278, in take_action
    elif action == "backup": Backup(rps[0], rps[1])
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 341, in Backup
    backup.Mirror_and_increment(rpin, rpout, incdir)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/backup.py", line 51, in Mirror_and_increment
    DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/connection.py", line 448, in __call__
    return apply(self.connection.reval, (self.name,) + args)
  File "/usr/lib/python2.5/site-packages/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 23, in <module>
    rdiff_backup.Main.error_check_Main(sys.argv[1:])
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 302, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 322, in Main
    take_action(rps)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 278, in take_action
    elif action == "backup": Backup(rps[0], rps[1])
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 341, in Backup
    backup.Mirror_and_increment(rpin, rpout, incdir)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/backup.py", line 51, in Mirror_and_increment
    DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/connection.py", line 448, in __call__
    return apply(self.connection.reval, (self.name,) + args)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/connection.py", line 370, in reval
    if isinstance(result, Exception): raise result
IOError: [Errno 22] Invalid argument
Fatal Error: Lost connection to the remote system



Expected results:
Backup completes.

Additional info:
The server side is running the same version of rdiff-backup but is on a Fedora 9 platform.  The setup worked flawlessly until the recent upgrade.  The F10 package had been out for some time but would not function with the older version on the F9 server.  When the update came out for the F9 server I upgraded both.  I ran the same script as before and I cannot get the system to backup.

Comment 1 Kevin Fenzi 2008-10-04 16:32:17 UTC
I am seeing this same thing here on one of my machines, but haven't had time to track it down. ;( 

What are the filesystems types on both ends?

There is a upstream thread mentioning this: 
http://lists.nongnu.org/archive/html/rdiff-backup-users/2008-09/msg00044.html
and someone there is suggesting it's a issue with pyxattr. I'm trying a backup here without that enabled to see if that points the right way.

Comment 2 Kevin Fenzi 2008-10-05 16:55:11 UTC
ok. I got my machine here to finish by doing a 'rpm -e pyxattr --nodeps'. 
So, it's clearly a issue in pyxattr somewhere. You can do that as a temp work around until we track down the issue?

My machine here that wouldn't finish is using JFS. What is the filesystem on your machine that won't finish?

Comment 3 Kevin Fenzi 2008-10-05 18:53:49 UTC
Adding the pyxattr maintainer here. 

I do see there is a much newer version out, but it's not clear what changes are in it from a quick glance.

Comment 4 Marcin Zajaczkowski 2008-10-05 20:16:09 UTC
I knew about new versions, but I didn't see there changes which would required to make a new package update.

SRPM for a new version can be downloaded from my website:
http://timeoff.wsisiz.edu.pl/rpms/pyxattr/pyxattr-0.4.0-1.src.rpm

Please test it.

There was a license change (GPLv2+ -> LGPLv2+) in 0.3 which has to be announced and Python Eggs was introduced into a source distribution (I have review a SPEC file).

Comment 5 Kevin Fenzi 2008-10-06 19:45:08 UTC
Sadly, the newer pyxattr doesn't seem to help. 

Here's the backtrace I get from rdiff-backup: 

Processing changed file etc/cron.daily
Sending back exception [Errno 22] Invalid argument of type <type 'exceptions.IOError'>:
  File "/usr/lib/python2.5/site-packages/rdiff_backup/connection.py", line 335, in answer_request
    result = apply(eval(request.function_string), argument_list)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/backup.py", line 243, in patch_and_increment
    ITR(diff.index, diff)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/rorpiter.py", line 277, in __call__
    if self.finish_branches(index) is None:
  File "/usr/lib/python2.5/site-packages/rdiff_backup/rorpiter.py", line 229, in finish_branches
    to_be_finished.end_process()
  File "/usr/lib/python2.5/site-packages/rdiff_backup/backup.py", line 661, in end_process
    rpath.copy_attribs(self.dir_update, self.base_rp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/rpath.py", line 178, in copy_attribs
    if Globals.eas_write: rpout.write_ea(rpin.get_ea())
  File "/usr/lib/python2.5/site-packages/rdiff_backup/rpath.py", line 1298, in write_ea
    ea.write_to_rp(self)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/eas_acls.py", line 110, in write_to_rp
    rp.conn.xattr.setxattr(rp.path, name, value)

Exception '[Errno 22] Invalid argument' raised of class '<type 'exceptions.IOError'>':
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 302, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 322, in Main
    take_action(rps)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 278, in take_action
    elif action == "backup": Backup(rps[0], rps[1])
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 341, in Backup
    backup.Mirror_and_increment(rpin, rpout, incdir)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/backup.py", line 51, in Mirror_and_increment
    DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/connection.py", line 448, in __call__
    return apply(self.connection.reval, (self.name,) + args)
  File "/usr/lib/python2.5/site-packages/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 23, in <module>
    rdiff_backup.Main.error_check_Main(sys.argv[1:])
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 302, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 322, in Main
    take_action(rps)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 278, in take_action
    elif action == "backup": Backup(rps[0], rps[1])
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line 341, in Backup
    backup.Mirror_and_increment(rpin, rpout, incdir)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/backup.py", line 51, in Mirror_and_increment
    DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/connection.py", line 448, in __call__
    return apply(self.connection.reval, (self.name,) + args)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/connection.py", line 370, in reval
    if isinstance(result, Exception): raise result
IOError: [Errno 22] Invalid argument

Comment 6 Marcin Zajaczkowski 2008-10-26 18:53:13 UTC
After the initial question on rdiff-backup mailing list [1] there is no reply from the reported. Have you guys tried to continue that thread or started the new one?
Maybe they would be able to help with that issue?

[1] - http://lists.nongnu.org/archive/html/rdiff-backup-users/2008-09/msg00047.html

Comment 7 Kevin Fenzi 2008-10-28 23:35:17 UTC
Yeah, sorry I meant to go post there, but didn't get around to it. ;( 

In the mean time 1.2.2 has come out. 
Here is a scratch build if anyone would like to try it and see if the problem persists. I will try and duplicate here and post upstream. 

http://koji.fedoraproject.org/koji/taskinfo?taskID=910145

Comment 8 eric 2008-10-31 14:18:11 UTC
Kevin:
Is this going to be pushed to the F10 and F9 repos?

Comment 9 Kevin Fenzi 2008-11-01 20:13:24 UTC
Likely, but I would like to see if it fixes this issue first. 

I haven't had a chance to try it yet here, but will now.

Comment 10 Kevin Fenzi 2008-11-01 20:26:09 UTC
BTW, some other dist scratch builds for testing: 

F9: http://koji.fedoraproject.org/koji/taskinfo?taskID=914468
F8: http://koji.fedoraproject.org/koji/taskinfo?taskID=914480

Comment 11 Kevin Fenzi 2008-11-01 20:36:45 UTC
and it looks like it still fails the same way with 1.2.2. 

Posted to upstream list to try and track this down more.

Comment 12 Bug Zapper 2008-11-26 03:32:22 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 10 development cycle.
Changing version to '10'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 13 Kevin Fenzi 2008-12-16 00:12:51 UTC
Humm. I can't seem to reproduce this now with 1.2.2. 
I did move the machine to a new install that is NOT using jfs, so perhaps it was file system related?

Eric: Can you please try the update I just built and scheduled to push to updates-testing?

http://admin.fedoraproject.org/updates/rdiff-backup-1.2.2-1.fc9
http://admin.fedoraproject.org/updates/rdiff-backup-1.2.2-1.fc10

Comment 14 eric 2008-12-24 03:22:06 UTC
Just got around to installing it and testing it.  Looks like it works on F10.

Comment 15 Kevin Fenzi 2008-12-24 03:30:32 UTC
Cool. I guess we can close this now? 

Note that due to an issue noted in bug 476539 I will probibly wait and push 1.2.3 out as soon as upstream releases it. 

Feel free to reopen or file a new bug if you spot any further issues.


Note You need to log in before you can comment on or make changes to this bug.