rdiff-backup fails on handled failed systems attempts to create directories (special unicode characters etc)

Bug #330410 reported by Jirka Vejrazka on 2009-02-17
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
rdiff-backup (Ubuntu)
Low
Unassigned

Bug Description

Binary package hint: rdiff-backup

rdiff-backup fails on Unicode directories, in a manner very similar to bug #223280 (which is marked as "fixed").

root@arthur:/var/log/apache2# python -V
Python 2.5.2
root@arthur:/var/log/apache2# rdiff-backup -V
rdiff-backup 1.2.6
root@arthur:/var/log/apache2# lsb_release -rd
Description: Ubuntu 8.10
Release: 8.10

From backup.log:

Processing changed file 1_Kubik/2007-12-24-vánoce
Sending back exception [Errno 84] Invalid or incomplete multibyte or wide character: 'backup/G-zaloha/Foto/1_Kubik/2007-12-24-v\xe1noce' of type <type 'exceptions.OSError'>:
  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 232, in patch
    ITR(diff.index, diff)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/rorpiter.py", line 284, in __call__
    branch.start_process(*args)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/backup.py", line 626, in start_process
    if diff_rorp.isdir(): self.prepare_dir(diff_rorp, self.base_rp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/backup.py", line 654, in prepare_dir
    base_rp.mkdir()
  File "/usr/lib/python2.5/site-packages/rdiff_backup/rpath.py", line 983, in mkdir
    self.conn.os.mkdir(self.path)

The sender is rdiff-backup (same version) on Windows Vista.

Andrew Ferguson (adferguson) wrote :

Hmm, yes. The previous fix only applied to files which generate the "Invalid or incomplete multibyte or wide character" error.

Unfortunately, with a directory, it isn't clear what to do. Should rdiff-backup skip the entire directory since it can't create it on the destination? (Analogous to what it does with files) Or should it somehow rename the directory on the destination and then perform the reverse rename during restore? (preferably, but the infrastructure isn't really there to do that)

Out of curiosity, what is the destination filesystem and Linux version? Can you create a directory on it with the á character?

Changed in rdiff-backup:
status: New → Confirmed
Jirka Vejrazka (jirka-vejrazka) wrote :

Hi, thanks for the response! I'd definitely prefer if rdiff-backup handled the error gracefully by skipping the dir (and logging it somewhere?) rather than crashing (and thus stopping a backup expected to run overnight).

I couldn´t create a directory with "á" in it from shell either (so technically, there is nothing wrong with rdiff-backup), but OSError should probably be handled gracefully anyway :-)

$ mkdir á
mkdir: cannot create directory `\341': Invalid or incomplete multibyte or wide character

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 8.10
Release: 8.10

Thanks for rdiff-backup - it's a good and useful piece of software!

   Jirka

Jirka Vejrazka (jirka-vejrazka) wrote :

Sorry, forgot to add - the destination filesystem is NTFS

Andrew Ferguson (adferguson) wrote :

Well that's good -- at least rdiff-backup isn't failing to make a directory which the shell can easily create. :-)

Actually, I think you might be able to avoid this problem entirely if you set the right options in your shell. A search for "ntfs-3g invalid or incomplete multibyte or wide character" turns up a number of useful suggestions.

Jirka Vejrazka (jirka-vejrazka) wrote :

Thank you Andrew, the hint about ntfs-3g settings seems to have helped (I'll know for sure in the morning). But still, IOError should be handled ;-)

Andreas Olsson (andol) on 2009-08-15
summary: - rdiff-backup fails on a directory with an unknown Unicode character
+ rdiff-backup fails on handled failed systems attempts to create
+ directories (special unicode characters etc)
Changed in rdiff-backup (Ubuntu):
importance: Undecided → Low
Otto Kekäläinen (otto) wrote :

Hello!

The new rdiff-backup 2.0 (written in Python 3) has recently been released. Please check out https://github.com/rdiff-backup/rdiff-backup and contribute in this open source project.

This bug is unlikely to apply to anymore to latest rdiff-backup 2.0, so it will be closed unless you want to help out and test if you can repeat the bug with the latest rdiff-backup.

Changed in rdiff-backup (Ubuntu):
status: Confirmed → Incomplete
Jirka Vejrazka (jirka-vejrazka) wrote :

Hi, thanks, appreciate the follow-up! Sadly (and somewhat unsurprisingly) I don't have access to any of the machines or data sample that were used to create the bug report. But I have full faith that the problem was fixed, happy with the bug being closed.

Launchpad Janitor (janitor) wrote :

[Expired for rdiff-backup (Ubuntu) because there has been no activity for 60 days.]

Changed in rdiff-backup (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers