[Bug 1861451] Re: apport's cloud-init-specific handling tracebacks on minimal cloud images

Brian Murray 1861451 at bugs.launchpad.net
Wed Aug 19 15:31:43 UTC 2020


** Description changed:

  Impact
  ------
  It is not possible to run ubuntu-bug for some packages which gather information as root because pkexec does not work in non-graphical environments (LP: #1821415). This was worked around in Ubuntu 19.10 by not gathering any information that would require root access.
- 
  
  Test Case
  ---------
  
  1) Install multipass.
  2) `multipass launch http://cloud-images.ubuntu.com/minimal/daily/bionic/current/bionic-minimal-cloudimg-amd64.img -n reproducer`
  3) `multipass shell reproducer`
  4) `ubuntu-bug cloud-init`
  
  Expected behaviour:
  
  Usual bug reporting flow (though, currently, I would really expect to
  see just the issue reported in bug 1861450).
  
  Actual behaviour:
  
  ERROR: hook /usr/share/apport/package-hooks/cloud-init.py crashed:
  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/package-hooks/cloud-init.py", line 6, in add_info
      return cloudinit_add_info(report, ui)
    File "/usr/lib/python3/dist-packages/cloudinit/apport.py", line 123, in add_info
      attach_cloud_init_logs(report, ui)
    File "/usr/lib/python3/dist-packages/cloudinit/apport.py", line 57, in attach_cloud_init_logs
      'cloud-init-output.log.txt': 'cat /var/log/cloud-init-output.log'})
    File "/usr/lib/python3/dist-packages/apport/hookutils.py", line 444, in attach_root_command_outputs
      sp = subprocess.Popen(_root_command_prefix() + [wrapper_path, script_path])
    File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
      restore_signals, start_new_session)
    File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
      raise child_exception_type(errno_num, err_msg, err_filename)
  FileNotFoundError: [Errno 2] No such file or directory: 'pkexec': 'pkexec'
  
  (As alluded to above, this also demonstrates bug 1861450 after the
  traceback is emitted.)
  
  Regression Potential
  --------------------
- None as we are just returning and empty list if pkexec is not available.
+ Little as we are just returning and empty list if pkexec is not available, however it is always possible that the code is misformated or that there is a logic error in it. A regression test would be to run the ubuntu-bug cloud-init on a system with pkexec installed.

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

Title:
  apport's cloud-init-specific handling tracebacks on minimal cloud
  images

Status in apport package in Ubuntu:
  Fix Released
Status in apport source package in Bionic:
  In Progress
Status in apport source package in Focal:
  Invalid

Bug description:
  Impact
  ------
  It is not possible to run ubuntu-bug for some packages which gather information as root because pkexec does not work in non-graphical environments (LP: #1821415). This was worked around in Ubuntu 19.10 by not gathering any information that would require root access.

  Test Case
  ---------

  1) Install multipass.
  2) `multipass launch http://cloud-images.ubuntu.com/minimal/daily/bionic/current/bionic-minimal-cloudimg-amd64.img -n reproducer`
  3) `multipass shell reproducer`
  4) `ubuntu-bug cloud-init`

  Expected behaviour:

  Usual bug reporting flow (though, currently, I would really expect to
  see just the issue reported in bug 1861450).

  Actual behaviour:

  ERROR: hook /usr/share/apport/package-hooks/cloud-init.py crashed:
  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/package-hooks/cloud-init.py", line 6, in add_info
      return cloudinit_add_info(report, ui)
    File "/usr/lib/python3/dist-packages/cloudinit/apport.py", line 123, in add_info
      attach_cloud_init_logs(report, ui)
    File "/usr/lib/python3/dist-packages/cloudinit/apport.py", line 57, in attach_cloud_init_logs
      'cloud-init-output.log.txt': 'cat /var/log/cloud-init-output.log'})
    File "/usr/lib/python3/dist-packages/apport/hookutils.py", line 444, in attach_root_command_outputs
      sp = subprocess.Popen(_root_command_prefix() + [wrapper_path, script_path])
    File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
      restore_signals, start_new_session)
    File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
      raise child_exception_type(errno_num, err_msg, err_filename)
  FileNotFoundError: [Errno 2] No such file or directory: 'pkexec': 'pkexec'

  (As alluded to above, this also demonstrates bug 1861450 after the
  traceback is emitted.)

  Regression Potential
  --------------------
  Little as we are just returning and empty list if pkexec is not available, however it is always possible that the code is misformated or that there is a logic error in it. A regression test would be to run the ubuntu-bug cloud-init on a system with pkexec installed.

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



More information about the foundations-bugs mailing list