Nautilus tries but fails to auto-install applications needed to open files of a given type

Bug #1190097 reported by Adam Dingle on 2013-06-12
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
app-install-data-ubuntu (Ubuntu)
High
Unassigned
nautilus (Ubuntu)
Low
Unassigned
sessioninstaller (Ubuntu)
Low
Unassigned

Bug Description

I'm running Nautilus 3.6.3 on Ubuntu 13.10 (Saucy).

When I double click a file in Nautilus and there is no application installed which can open the file, Nautilus will try to auto-install an application but the auto-install hangs. Specifically, for example:

1. Make sure that Gnumeric is not installed on your system.
2. Create a file with extension .gnumeric and double click it in Nautlius.

Nautilus will report:

  Could not display "finance.gnumeric".
  There is no application installed for "Gnumeric spreadsheet" files.
  Do you want to search for an application to open this file?

Click Yes. You'll now see a dialog that looks like this:

  Searching for suitable software to open files
  Files requires to install [sic] software to open files of the following file type: Gnumeric spreadsheet

The dialog has a progress bar, which will briefly pulse and then stop. You can now only press Cancel.

A glance at the code shows that Nautilus is trying to send a DBus message to PackageKit to perform the install. There are apparently some PackageKit components on my system (e.g. libpackagekit-glib2-14 is installed), but something is not working.

Adam Dingle (adam-yorba) on 2013-06-12
description: updated
Sebastien Bacher (seb128) wrote :

Thanks Adam, trying to figure out what is happening there I looked at a dbus-monitor log and saw that:

"error sender=:1.444 -> dest=:1.438 error_name=org.freedesktop.DBus.Python.xdg.Exceptions.ParsingError reply_serial=158
   string "Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/defer/__init__.py", line 489, in _inline_callbacks
    result = gen.send(result)
  File "/usr/lib/python2.7/dist-packages/sessioninstaller/core.py", line 1030, in _install_mime_types
    path))
  File "/usr/lib/python2.7/dist-packages/xdg/DesktopEntry.py", line 33, in __init__
    self.parse(filename)
  File "/usr/lib/python2.7/dist-packages/xdg/DesktopEntry.py", line 42, in parse
    IniFile.parse(self, file, ["Desktop Entry", "KDE Desktop Entry"])
  File "/usr/lib/python2.7/dist-packages/xdg/IniFile.py", line 81, in parse
    raise ParsingError("Invalid line: " + line, filename)
ParsingError: ParsingError in file '/usr/share/app-install/desktop/workrave:workrave.desktop', Invalid line: - RSI (Repetitive Strain Injury) oraz wspomaga rekonwalescencj\u0119"

removing '/usr/share/app-install/desktop/workrave:workrave.desktop' fixes the issue

I'm adding app-install-data-ubuntu (which ships the broken .desktop), workrave (where the original .desktop comes from) and sessioninstaller (which shouldn't probably stop working because one file has parsing errors) to the affected components

Changed in nautilus (Ubuntu):
status: New → Invalid
importance: Undecided → Low
Changed in sessioninstaller (Ubuntu):
importance: Undecided → Low
status: New → Triaged
Changed in app-install-data-ubuntu (Ubuntu):
importance: Undecided → High
status: New → Triaged
Sebastien Bacher (seb128) wrote :

in fact there is already a bug for workrave, bug #1176200, I'm going to use that one

Martin Pitt (pitti) wrote :

Fixed in lp:session-installer r139 and r140.

Changed in sessioninstaller (Ubuntu):
status: Triaged → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package sessioninstaller - 0.20+bzr141-0ubuntu1

---------------
sessioninstaller (0.20+bzr141-0ubuntu1) saucy; urgency=low

  * Update Vcs-* headers for saucy branch.
  * New upstream snapshot:
    - Includes 03_gstreamer_1.0.patch, 04_dont_double_defer.patch,
      05_parent_process_name.patch, drop these.
    - Don't crash on parsing broken .desktop files. (LP: #1190097)
 -- Martin Pitt <email address hidden> Thu, 13 Jun 2013 12:50:45 +0200

Changed in sessioninstaller (Ubuntu):
status: Fix Committed → Fix Released
Thomas Kluyver (takluyver) wrote :

Thanks, I've just run into this as well. For reference, the bug appeared because I made PyXDG stricter about parsing .desktop files. I'm aware that the break is somewhat annoying, but I think it's ultimately better to throw an exception than to return a potentially incorrect/incomplete object.

Sebastian Heinlein (glatzor) wrote :

Thomas, the bug did re-occur? Or do you refer to the not fixed version of session-installer?

Mathew Hodson (mhodson) wrote :
Changed in app-install-data-ubuntu (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