[Bug 1579897] Re: report's _command_output function doesn't always return the error

Martin Pitt martin.pitt at ubuntu.com
Wed May 11 09:21:54 UTC 2016


Reproduced with "sudo dpkg --force-all -P libbabeltrace1" which breaks
gdb (but keeps python3.5 intact).

Fixed in http://bazaar.launchpad.net/~apport-
hackers/apport/trunk/revision/3079

** Changed in: apport
       Status: In Progress => Fix Released

** Also affects: apport (Ubuntu)
   Importance: Undecided
       Status: New

** Changed in: apport (Ubuntu)
   Importance: Undecided => Low

** Changed in: apport (Ubuntu)
       Status: New => Fix Committed

-- 
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/1579897

Title:
  report's _command_output function doesn't always return the error

Status in Apport:
  Fix Released
Status in apport package in Ubuntu:
  Fix Committed

Bug description:
  Apparently, the following gdb command fails but the error output is
  not in subprocess's err output but in stdout.

  > /srv/daisy.staging.ubuntu.com/staging/apport-2984/apport/report.py(104)_command_output()
  -> if sp.returncode == 0:
  (Pdb) l
   99         '''
  100         sp = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=stderr)
  101     
  102         (out, err) = sp.communicate(input)
  103         import pdb; pdb.set_trace()
  104  ->     if sp.returncode == 0:
  105             return out
  106         else:
  107             if err:
  108                 err = err.decode('UTF-8', errors='replace')
  109             else:
  (Pdb) command
  ['/tmp/apport_sandbox__6uwrvhm/usr/bin/gdb', '--ex', 'set debug-file-directory /tmp/apport_sandbox__6uwrvhm/usr/lib/debug', '--ex', 'set solib-absolute-prefix /tmp/apport_sandbox__6uwrvhm', '--ex', 'file "/tmp/apport_sandbox__6uwrvhm//usr/bin/cdparanoia"', '--ex', 'core-file /tmp/apport_core_756rypvb', '--batch', '--ex', 'set backtrace limit 2000', '--ex', 'p -99', '--ex', 'print (char*) __nih_abort_msg', '--ex', 'p -99', '--ex', 'print __abort_msg->msg', '--ex', 'p -99', '--ex', 'print __glib_assert_msg', '--ex', 'p -99', '--ex', 'bt full', '--ex', 'p -99', '--ex', 'x/16i $pc', '--ex', 'p -99', '--ex', 'thread apply all bt full', '--ex', 'p -99', '--ex', 'info registers']
  (Pdb) out
  b'/tmp/apport_sandbox__6uwrvhm/usr/bin/gdb: error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory\n'

  Because stdout is not included in the raised error message it ended up
  being hard to find out what the error really was.

  111             raise OSError('Error: command %s failed with exit code %i: %s' % (
  112                 str(command), sp.returncode, err))

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



More information about the foundations-bugs mailing list