[Bug 1647101] Re: UnicodeDecodeError in fast-export when author name contains non-ascii characters

Brian Murray brian at ubuntu.com
Thu Jun 15 23:37:54 UTC 2017


Hello Jordan, or anyone else affected,

Accepted python-fastimport into zesty-proposed. The package will build
now and be available at https://launchpad.net/ubuntu/+source/python-
fastimport/0.9.6-2ubuntu17.04.1 in a few hours, and then in the
-proposed repository.

Please help us by testing this new package.  See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed.Your feedback will aid us getting this
update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, and change the tag
from verification-needed to verification-done. If it does not fix the
bug for you, please add a comment stating that, and change the tag to
verification-failed.  In either case, details of your testing will help
us make a better decision.

Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification .  Thank you in
advance!

** Changed in: python-fastimport (Ubuntu Zesty)
       Status: In Progress => Fix Committed

** Tags added: verification-needed

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1647101

Title:
  UnicodeDecodeError in fast-export when author name contains non-ascii
  characters

Status in python-fastimport:
  Fix Committed
Status in python-fastimport package in Ubuntu:
  Fix Released
Status in python-fastimport source package in Zesty:
  Fix Committed
Status in python-fastimport source package in Artful:
  Fix Released

Bug description:
  [ Impact ]
  * dealing with objects with a non-ascii char in their name just fail

  [ Test case ]
  * just try to export a bzr branch with a non-char character, for example the ubuntu-dev-tools bzr repository.

  [ Regression potential ]
  * The change has been in stretch and artful for a while, with no regressions reported
  * also the change itself is kind of small and easily auditable

  [ Original description ]
  I was able to decipher that it failed when it got to the part of history where the commit author's name was "Raúl Núñez". (git-bzr is http://github.com/termie/git-bzr-ng)

  $ git bzr clone lp:sakura
  You have not informed bzr of your Launchpad ID, and you must do this to
  write to Launchpad or access private data.  See "bzr help launchpad-login".
  Branched 562 revisions.tching revisions:Finishing stream:Estimate 6041/7652
  14:42:10 Calculating the revisions to include ...
  14:42:10 Starting export of 743 revisions ...
  bzr: ERROR: exceptions.UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 2: ordinal not in range(128)

  Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/bzrlib/commands.py", line 930, in exception_to_return_code
      return the_callable(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/bzrlib/commands.py", line 1121, in run_bzr
      ret = run(*run_argv)
    File "/usr/lib/python2.7/site-packages/bzrlib/commands.py", line 673, in run_argv_aliases
      return self.run(**all_cmd_args)
    File "/usr/lib/python2.7/site-packages/bzrlib/commands.py", line 697, in run
      return self._operation.run_simple(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/bzrlib/cleanup.py", line 136, in run_simple
      self.cleanups, self.func, *args, **kwargs)
    File "/usr/lib/python2.7/site-packages/bzrlib/cleanup.py", line 166, in _do_with_cleanups
      result = func(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/bzrlib/plugins/fastimport/cmds.py", line 720, in run
      return exporter.run()
    File "/usr/lib/python2.7/site-packages/bzrlib/plugins/fastimport/exporter.py", line 240, in run
      self.emit_commit(revid, self.ref)
    File "/usr/lib/python2.7/site-packages/bzrlib/plugins/fastimport/exporter.py", line 358, in emit_commit
      self.print_cmd(self._get_commit_command(ref, mark, revobj, file_cmds))
    File "/usr/lib/python2.7/site-packages/bzrlib/plugins/fastimport/exporter.py", line 287, in print_cmd
      self.outf.write("%r\n" % cmd)
    File "/usr/lib/python2.7/site-packages/fastimport/commands.py", line 74, in __repr__
      return self.__bytes__()
    File "/usr/lib/python2.7/site-packages/fastimport/commands.py", line 186, in __bytes__
      return self.to_string(include_file_contents=True)
    File "/usr/lib/python2.7/site-packages/fastimport/commands.py", line 201, in to_string
      author_section = b'\nauthor ' + format_who_when(self.author)
    File "/usr/lib/python2.7/site-packages/fastimport/commands.py", line 504, in format_who_when
      name = utf8_bytes_string(name)
    File "/usr/lib/python2.7/site-packages/fastimport/helpers.py", line 104, in utf8_bytes_string
      return s.encode('utf8')
  UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 2: ordinal not in range(128)

  bzr 2.7.0 on python 2.7.12 (Linux-4.8.8-2-ARCH-x86_64-with-glibc2.2.5)
  arguments: ['/usr/sbin/bzr', 'fast-export', '--plain', '--export-
      marks=/home/forivall/code/repos/sakura/.git/bzr/map/master-bzr', '--git-
      branch=bzr/master',
      '/home/forivall/code/repos/sakura/.git/bzr/repo/master']
  plugins: bash_completion[2.7.0], changelog_merge[2.7.0],
      fastimport[0.14.0dev], grep[2.7.0], launchpad[2.7.0],
      netrc_credential_store[2.7.0], news_merge[2.7.0], po_merge[2.7.0],
      weave_fmt[2.7.0]
  encoding: 'utf-8', fsenc: 'UTF-8', lang: 'en_CA.UTF-8'

  *** Bazaar has encountered an internal error.  This probably indicates a
      bug in Bazaar.  You can help us fix it by filing a bug report at
          https://bugs.launchpad.net/bzr/+filebug
      including this traceback and a description of the problem.
  ERROR:root:bzr export failed

  I fixed it by changing `s.encode('utf8')` to `return unicode(s,
  'utf8').encode('utf8')`, but that should probably be limited to only
  when `sys.getdefaultencoding()` returns 'ascii'

To manage notifications about this bug go to:
https://bugs.launchpad.net/python-fastimport/+bug/1647101/+subscriptions



More information about the Ubuntu-sponsors mailing list