uncaught TypeError triggers ValueError

Bug #1723822 reported by Scott Palmer on 2017-10-16
2
Affects Status Importance Assigned to Milestone
Apport
High
Unassigned
apport (Ubuntu)
High
Unassigned
nautilus (Ubuntu)
Low
Unassigned

Bug Description

$ ubuntu-bug nautilus
ERROR: hook /usr/share/apport/package-hooks/source_nautilus.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)
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 203, in _run_hook
    symb['add_info'](report)
  File "/usr/share/apport/package-hooks/source_nautilus.py", line 23, in add_info
    report["usr_lib_nautilus"] = package_versions(*sorted(plugin_packages))
  File "/usr/lib/python3/dist-packages/apport/hookutils.py", line 785, in package_versions
    map(max, [map(len, t) for t in zip(*versions)])
ValueError: not enough values to unpack (expected 2, got 0)
This tool has been deprecated, use 'gio open' instead.
See 'gio help open' for more info.

$ Created new window in existing browser session.

ProblemType: Bug
DistroRelease: Ubuntu 17.10
Package: apport 2.20.7-0ubuntu3
ProcVersionSignature: Ubuntu 4.13.0-16.19-generic 4.13.4
Uname: Linux 4.13.0-16-generic x86_64
ApportVersion: 2.20.7-0ubuntu3
Architecture: amd64
CrashReports:
 640:121:119:20593327:2017-10-14 08:49:43.994080376 -0700:2017-10-14 08:49:24.682136558 -0700:/var/crash/_usr_bin_gnome-shell.121.crash
 640:0:119:712257:2017-10-13 22:55:49.843941428 -0700:2017-10-13 22:55:48.723911385 -0700:/var/crash/_usr_lib_udisks2_udisksd.0.crash
 640:1000:119:432238:2017-10-14 07:48:01.498643348 -0700:2017-10-14 07:48:00.714643372 -0700:/var/crash/_usr_lib_gvfs_gvfsd-mtp.1000.crash
 664:1000:119:0:2017-10-13 19:55:40.447393054 -0700:2017-10-13 19:55:40.447393054 -0700:/var/crash/_usr_lib_gvfs_gvfsd-mtp.1000.upload
 600:112:119:0:2017-10-13 19:55:42.247460153 -0700:2017-10-13 19:55:42.247460153 -0700:/var/crash/_usr_lib_gvfs_gvfsd-mtp.1000.uploaded
CurrentDesktop: ubuntu:GNOME
Date: Sun Oct 15 17:52:08 2017
InstallationDate: Installed on 2017-10-03 (12 days ago)
InstallationMedia: Ubuntu 17.10 "Artful Aardvark" - Alpha amd64 (20170926)
PackageArchitecture: all
SourcePackage: apport
UpgradeStatus: No upgrade log present (probably fresh install)

Scott Palmer (skewty) wrote :
Changed in apport (Ubuntu):
status: New → Confirmed
importance: Undecided → Medium
Brian Murray (brian-murray) wrote :

There are two issues here, one with apport and another with nautilus. The nautilus package ships an apport-package hook and it is looking for information about plugins in /usr/lib/nautilus which is not where they are stored anymore.

 12 # collect informations on the /usr/lib/nautilus components
 13 plugin_packages = set()
 14 for dirpath, dirnames, filenames in os.walk("/usr/lib/nautilus"):
 15 for filename in filenames:
 16 path = os.path.join(dirpath, filename)
 17 package = apport.packaging.get_file_package(path)
 18 if package == 'nautilus':
 19 continue

 $ ls /usr/lib/nautilus/
ls: cannot access '/usr/lib/nautilus/': No such file or directory

I think they've moved to /usr/lib/x86_64-linux-gnu/nautilus/extensions-3.0. Regardless, the apport package hook from nautilus needs updating.

Changed in nautilus (Ubuntu):
status: New → Triaged
importance: Undecided → High
Brian Murray (brian-murray) wrote :

The issue with apport is that if the function package_versions is called in hookutils and packages is empty there is no handling for that so then it ends up crashing when trying to create the map. Once that is fixed apport will continue to produce a problem report even though the nautilus hook is broken.

Changed in apport (Ubuntu):
status: Confirmed → Triaged
importance: Medium → High
Changed in apport:
status: New → Fix Released
importance: Undecided → High
Changed in nautilus (Ubuntu):
assignee: nobody → Canonical Desktop Team (canonical-desktop-team)
Sebastien Bacher (seb128) wrote :

Right, the nautilus multiarch dir is known, it's a minor issue but should be fixed (does apport provide an easy way to get the multiarch dir from a hook?)

Lowering and unassigning from the canonical desktop team meanwhile, it's not important to be flagged this way.

Changed in nautilus (Ubuntu):
assignee: Canonical Desktop Team (canonical-desktop-team) → nobody
importance: High → Low
Sebastien Bacher (seb128) wrote :

Brian, my understanding is that nautilus reports just get such info
https://launchpadlibrarian.net/340847171/HookError_source_nautilus.txt

it means they don't include some of the extra info but those details are not important in most report

Is that right or does it trigger apport prompts or something more annoying (just making sure to understand why you assigned to our team/flagged as a problem worth pinging us directly about)

On Wed, Oct 18, 2017 at 07:56:41AM -0000, Sebastien Bacher wrote:
> Brian, my understanding is that nautilus reports just get such info
> https://launchpadlibrarian.net/340847171/HookError_source_nautilus.txt
>
> it means they don't include some of the extra info but those details are
> not important in most report

Yes, the report still be sent but will be missing information.

> Is that right or does it trigger apport prompts or something more
> annoying (just making sure to understand why you assigned to our
> team/flagged as a problem worth pinging us directly about)

I wasn't aware how important the missing information was so pinged you
about it.

--
Brian Murray

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package apport - 2.20.8-0ubuntu1

---------------
apport (2.20.8-0ubuntu1) bionic; urgency=medium

   * New upstream release:
     - SECURITY UPDATE: Denial of service via resource exhaustion and
       privilege escalation when handling crashes of tainted processes.
     - When /proc/sys/fs/suid_dumpable is set to 2, do not assume that
       the user and group owning the /proc/<PID>/stat file is the same
       owner and group that started the process. Rather check the dump
       mode of the crashed process and do not write a core file if its
       value is 2. Thanks to Sander Bos for discovering this issue!
       (CVE-2017-14177, LP: #1726372)
     - SECURITY UPDATE: Denial of service via resource exhaustion,
       privilege escalation, and possible container escape when handling
       crashes of processes inside PID namespaces.
     - Change the method for determining if a crash is from a container
       so that there are no false positives from software using PID
       namespaces. Additionally, disable container crash forwarding by
       ignoring crashes that occur in a PID namespace. This functionality
       may be re-enabled in a future update. Thanks to Sander Bos for
       discovering this issue!
       (CVE-2017-14180, LP: #1726372)
   * apport/hookutils.py: modify package_versions to return an empty string if
     packages is empty. (LP: #1723822)

 -- Brian Murray <email address hidden> Wed, 15 Nov 2017 12:44:24 -0800

Changed in apport (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers