Thank you everybody for your bug reports and comments.

I believe that this bug is already fixed in the 0.8-series, but we have
not yet released a package for this.

The code triggering this is used when there is an exception/error
message containing a non-ASCII character (for example a filename), so
this is sometimes 'fixed' by fixing the underlying problem. This is why
some commenters say the problem went away when they resolved permissions
issues. I do not know what has changed that is causing this to break for
people it did not break for previously.

The reality is that version 0.7 and below were never actually written to
accommodate non-ASCII characters and the fact it worked at all was
largely luck. The 0.8 series does add proper support for non-ASCII, with
the internals converted to Unicode and Python 3 support.

Many thanks to Pete Zaitcev (zaitcev) in Bug #1797928 for proposing a
patch for this, which I had overlooked.

I have applied this in the branch here: lp:~aaron-
whitehouse/duplicity/07-uexc-fix

It would be helpful if you can please test to see if this fixes your problem as 
follows:
1. Create a new destination directory to test with.
2. Test that duplicity fails as you have reported when using this destination.
3. Pull down a copy of the branch with the fix:
bzr branch lp:~aaron-whitehouse/duplicity/07-uexc-fix dup_patched
4. cd dup_patched/duplicity 
5. run ./compilec.py
6. change directory back to wherever you were running duplicity from before
5. Test with the patched duplicity:
PYTHONPATH=[full path/]dup_patched [full path/]dup_patched/bin/duplicity [all 
of your options/arguments]

Please let me know how you get on.

== Simple illustration of failure ==
A simple example triggering this bug is to create a couple of empty 
directories, say "source1" and "dest".

Then try:
duplicity --exclude=bänana source1/ file://dest/

This should give a FilePrefixError (hideous in version 0.7 and much more 
informative in 0.8), but instead says:
Traceback (most recent call last):
  File "/usr/bin/duplicity", line 1611, in <module>
    if "Forced assertion for testing" in util.uexc(e):
  File "/usr/lib/python2.7/dist-packages/duplicity/util.py", line 79, in uexc
    return ufn(unicode(e).encode('utf-8'))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal 
not in range(128)

** Branch linked: lp:~aaron-whitehouse/duplicity/07-uexc-fix

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to duplicity in Ubuntu.
https://bugs.launchpad.net/bugs/1770929

Title:
  Duplicity fails with UnicodeDecodeError in uexc function

Status in Duplicity:
  In Progress
Status in duplicity package in Ubuntu:
  Confirmed

Bug description:
  backup worked under Ubuntu 17.10
  It also worked on Ubuntu 18.4 before last week's update (run on Friday 11.5)
  my drive is encrypted
  this is the error message in the error frame
  Traceback (innermost last):
    File "/usr/bin/duplicity", line 1555, in <module>
      with_tempdir(main)
    File "/usr/bin/duplicity", line 1541, in with_tempdir
      fn()
    File "/usr/bin/duplicity", line 1393, in main
      do_backup(action)
    File "/usr/bin/duplicity", line 1523, in do_backup
      incremental_backup(sig_chain)
    File "/usr/bin/duplicity", line 668, in incremental_backup
      globals.backend)
    File "/usr/bin/duplicity", line 454, in write_multivol
      (tdp, dest_filename, vol_num)))
    File "/usr/lib/python2.7/dist-packages/duplicity/asyncscheduler.py", line 
146, in schedule_task
      return self.__run_synchronously(fn, params)
    File "/usr/lib/python2.7/dist-packages/duplicity/asyncscheduler.py", line 
172, in __run_synchronously
      ret = fn(*params)
    File "/usr/bin/duplicity", line 453, in <lambda>
      vol_num: put(tdp, dest_filename, vol_num),
    File "/usr/bin/duplicity", line 342, in put
      backend.put(tdp, dest_filename)
    File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 395, in 
inner_retry
      % (n, e.__class__.__name__, util.uexc(e)))
    File "/usr/lib/python2.7/dist-packages/duplicity/util.py", line 79, in uexc
      return ufn(unicode(e).encode('utf-8'))
   UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 37: 
ordinal not in range(128)

  ProblemType: Bug
  DistroRelease: Ubuntu 18.04
  Package: duplicity 0.7.17-0ubuntu1
  ProcVersionSignature: Ubuntu 4.15.0-20.21-generic 4.15.17
  Uname: Linux 4.15.0-20-generic x86_64
  ApportVersion: 2.20.9-0ubuntu7
  Architecture: amd64
  CurrentDesktop: ubuntu:GNOME
  Date: Sun May 13 09:55:00 2018
  InstallationDate: Installed on 2018-05-01 (11 days ago)
  InstallationMedia: Ubuntu 18.04 LTS "Bionic Beaver" - Release amd64 (20180426)
  SourcePackage: duplicity
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/duplicity/+bug/1770929/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to