[Bug 1766337] Re: uncaught python exception : UnicodeDecodeError: 'utf-8' codec can't decode byte; invalid continuation byte

Brian Murray brian at ubuntu.com
Tue Mar 5 17:08:16 UTC 2019


DpkgTerminalLog.txt still appears in an update-manager crash report
using the version of apport from bionic-proposed.

bdmurray at clean-bionic-amd64:~$ grep -A4 DpkgTerminal /var/crash/_usr_bin_update-manager.1000.crash 
DpkgTerminalLog.txt:
 Log started: 2019-03-05  09:00:54
(Reading database ... 166173 files and directories currently installed.)
 Removing apport-noui (2.20.9-0ubuntu7.6) ...
 Failed to stop apport-noui.path: Unit apport-noui.path not loaded.

bdmurray at clean-bionic-amd64:~$ apt-cache policy apport
apport:
  Installed: 2.20.9-0ubuntu7.6
  Candidate: 2.20.9-0ubuntu7.6


** Tags removed: verification-needed verification-needed-bionic
** Tags added: verification-done verification-done-bionic

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apport in Ubuntu.
https://bugs.launchpad.net/bugs/1766337

Title:
  uncaught python exception : UnicodeDecodeError: 'utf-8' codec can't
  decode byte; invalid continuation byte

Status in apport package in Ubuntu:
  Fix Released
Status in apport source package in Bionic:
  Fix Committed

Bug description:
  [Impact]
  Ubuntu crash reports and package installation failures may not include DpkgTerminalLog.txt if there is a UnicodeDecodeError trying to read the dpkg log file.

  [Test Case]
  Because the fix is simple and its complicated to have a dpkg log file with unicode in it we'll just test that truncating of a dpkg log file still works.

  1) Install 2vcard (so we have a recent dpkg log entry)
  2) Run update-manager
  3) Kill it with signal 11 e.g. kill -11 $PID of update-manager
  4) Run ubuntu-bug /var/crash/_usr_bin_update-manager.1000.crash
  5) Observe DpkgTerminalLog.txt only contains a log entry regarding the installation of 2vcard and matches the content in /var/log/apt/term.log.

  [Regression Potential]
  Its possible that the code to replace the DpkgTerminalLog contents of the report is wrong but the test case above ensures that it isn't.

  [Original Description]
  Hi,

  here is a python exception I got while reporting a bug:

  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/apport/report.py", line 198, in _run_hook
      symb['add_info'](report, ui)
    File "/usr/share/apport/general-hooks/ubuntu.py", line 89, in add_info
      check_attachment_for_errors(report, attachment)
    File "/usr/share/apport/general-hooks/ubuntu.py", line 208, in check_attachment_for_errors
      trim_dpkg_log(report)
    File "/usr/share/apport/general-hooks/ubuntu.py", line 508, in trim_dpkg_log
      report['DpkgTerminalLog'] = '\n'.join([str(line.decode('utf-8')) for line in lines])
    File "/usr/share/apport/general-hooks/ubuntu.py", line 508, in <listcomp>
      report['DpkgTerminalLog'] = '\n'.join([str(line.decode('utf-8')) for line in lines])
  UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 3070: invalid continuation byte

  It can also be seen here:

    https://launchpadlibrarian.net/367002573/HookError_ubuntu.txt

  ProblemType: BugDistroRelease: Ubuntu 18.04
  Package: apport 2.20.9-0ubuntu6
  Uname: Linux 4.16.3-041603-generic x86_64
  ApportLog:

  ApportVersion: 2.20.9-0ubuntu6
  Architecture: amd64
  CurrentDesktop: MATE
  Date: Mon Apr 23 20:13:24 2018
  PackageArchitecture: all
  ProcEnviron:
   TERM=xterm
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=en_US.UTF-8
   SHELL=/bin/bashSourcePackage: apport
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apport/+bug/1766337/+subscriptions



More information about the foundations-bugs mailing list