[Bug 1583279] Re: apport package hook for mdadm causes a Traceback

Launchpad Bug Tracker 1583279 at bugs.launchpad.net
Sat May 21 00:24:10 UTC 2016

This bug was fixed in the package mdadm - 3.3-2ubuntu8

mdadm (3.3-2ubuntu8) yakkety; urgency=medium

  * debian/source_mdadm.py:
    + fix bytes versus strings mismatch that caused the apport hook
      to fail (LP: #1583279)
    + capture grub.cfg for grub2
    + pyflakes and pep8 cleanups

 -- Steve Beattie <sbeattie at ubuntu.com>  Wed, 18 May 2016 13:31:04 -0700

** Changed in: mdadm (Ubuntu Yakkety)
       Status: Triaged => Fix Released

You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to mdadm in Ubuntu.

  apport package hook for mdadm causes a Traceback

Status in mdadm package in Ubuntu:
  Fix Released
Status in mdadm source package in Trusty:
Status in mdadm source package in Wily:
Status in mdadm source package in Xenial:
Status in mdadm source package in Yakkety:
  Fix Released

Bug description:
  As we can see in bug 1581940 (attachment HookError_source_mdadm.py)
  the apport package hook for mdadm causes a traceback.

  Here's the Traceback:

  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/apport/report.py", line 197, in _run_hook
      symb['add_info'](report, ui)
  TypeError: add_info() takes 1 positional argument but 2 were given

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/apport/report.py", line 202, in _run_hook
    File "/usr/share/apport/package-hooks/source_mdadm.py", line 53, in add_info
      report['initrd.files'] = get_initrd_files(initrd_re)
    File "/usr/share/apport/package-hooks/source_mdadm.py", line 30, in get_initrd_files
      out = cpio.communicate(fd.read())[0]
    File "/usr/lib/python3.5/subprocess.py", line 1065, in communicate
      stdout, stderr = self._communicate(input, endtime, timeout)
    File "/usr/lib/python3.5/subprocess.py", line 1681, in _communicate
    File "/usr/lib/python3.5/subprocess.py", line 1754, in _save_input
      self._input = self._input.encode(self.stdin.encoding)
  AttributeError: 'bytes' object has no attribute 'encode'


  Makes diagnosing issues around mdadm more difficult, as it won't be
  shown whether the generated initrd for the running kernel includes the
  bits relevant to mdadm.

  [Test Case]

  NOTE: an md device is not needed to reproduce the apport failure, the stacktrace is reproducable without setting up software raid.
  1. sudo apt-get install mdadm
  2. sudo apport-cli -f -p mdadm

  For the failure case, a traceback like the above will be seen. For the
  successful case, no traceback will be seen, and (V)iewing the report
  will show a section titled 'initrd.files'

  [Regression Potential]

  Changes involved are only to the apport hook for mdadm, so the only
  risk is due to the rebuild of the mdadm package itself, and any
  toolchain changes that have occurred since it was last rebuilt.

To manage notifications about this bug go to:

More information about the foundations-bugs mailing list