← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 989819] Re: Make duplicate signature more specific for DBusException and OSError

 

This bug was fixed in the package apport - 2.14.1-0ubuntu3.20

---------------
apport (2.14.1-0ubuntu3.20) trusty-proposed; urgency=medium

  * Disambiguate overly generic Python exceptions in duplicate signature
    computation: dbus-glib's DBusException wraps a "real" server-side
    exception, so add the class of that to disambiguate different crashes;
    for OSError that is not a known subclass like FileNotFoundError, add the
    errno. (LP: #989819)

 -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Fri, 01 Apr 2016 16:27:39
+0200

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

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/989819

Title:
  Make duplicate signature more specific for DBusException and OSError

Status in Daisy:
  Confirmed
Status in apport package in Ubuntu:
  Fix Released
Status in apport source package in Trusty:
  Fix Released
Status in apport source package in Xenial:
  Fix Released

Bug description:
  Looking through some db bug examples and saw some incorrect bug
  associations, one example

  "Traceback (most recent call last):
    File "/usr/lib/python2.7/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py", line 62, in wrapper
      res = f(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py", line 74, in wrapper
      res = f(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py", line 1090, in on_combobox_locale_chooser_changed
      self.writeUserFormats()
    File "/usr/lib/python2.7/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py", line 775, in writeUserFormats
      self.writeUserFormatsSetting(userFormats=code)
    File "/usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.py", line 71, in writeUserFormatsSetting
      iface.SetFormatsLocale(macr['SYSLOCALE'])
    File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 70, in __call__
      return self._proxy_method(*args, **keywords)
    File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 145, in __call__
      **keywords)
    File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
      message, timeout)
  DBusException: org.freedesktop.Accounts.Error.PermissionDenied: Not authorized"

  has been associated to
  https://bugs.launchpad.net/ubuntu/+source/accountsservice/+bug/930785

  "Traceback (most recent call last):
    File "/usr/lib/python2.7/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py", line 62, in wrapper
      res = f(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py", line 74, in wrapper
      res = f(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py", line 1081, in on_combobox_locale_chooser_changed
      self.writeUserFormats()
    File "/usr/lib/python2.7/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py", line 775, in writeUserFormats
      self.writeUserFormatsSetting(userFormats=code)
    File "/usr/lib/python2.7/dist-packages/LanguageSelector/LanguageSelector.py", line 71, in writeUserFormatsSetting
      iface.SetFormatsLocale(macr['SYSLOCALE'])
    File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 70, in __call__
      return self._proxy_method(*args, **keywords)
    File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 145, in __call__
      **keywords)
    File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
      message, timeout)
  DBusException: org.freedesktop.Accounts.Error.Failed: 'bg_BG.UTF-8' is not a valid locale name"

  The "functions signature" is the same, the exceptions are different
  though, it should probably consider that as part of the signature

  SRU TEST CASE:
  --------------
   * Modify /usr/bin/pybuild to append these two lines right after "def main(cfg):"

      raise OSError(99, 'some OS error')

   * Now running "pybuild" will provoke an OSError, and you should get a
  /var/crash/_usr_share_dh-python_pybuild.1000.crash

   * With current apport, the crash signature looks like this, i. e. it
  does not include the errno (99):

    $ python3 -c 'import apport; r = apport.Report(); r.load(open("/var/crash/_usr_share_dh-python_pybuild.1000.crash", "rb")); print(r.crash_signature())'
  /usr/share/dh-python/pybuild:OSError:/usr/share/dh-python/pybuild@449:main

   * With this apport update (you need to rm the .crash and re-generate
  it), it will look like this instead:

    /usr/share/dh-python/pybuild:OSError(99):/usr/share/dh-
  python/pybuild@449:main

   i. e. the errno 99 will be used to disambiguate/duplicate the crash.

  This works similarly for DBusErrors, but this is much harder to test
  manually. The backported patch includes automatic test cases which
  cover the DBusError cases, though.

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