Trusty backport of http://bazaar.launchpad.net/~apport-
hackers/apport/trunk/revision/3066 uploaded to the SRU review queue.

** Description changed:

  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)
+   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)
+   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
  
- 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.

** Changed in: apport (Ubuntu Trusty)
       Status: Triaged => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/989819

Title:
  Make duplicate signature more specific for DBusException and OSError

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to