Make duplicate signature more specific for DBusException and OSError
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Daisy |
Confirmed
|
High
|
Unassigned | ||
apport (Ubuntu) |
Fix Released
|
High
|
Martin Pitt | ||
Trusty |
Fix Released
|
High
|
Martin Pitt | ||
Xenial |
Fix Released
|
High
|
Martin Pitt |
Bug Description
Looking through some db bug examples and saw some incorrect bug associations, one example
"Traceback (most recent call last):
File "/usr/lib/
res = f(*args, **kwargs)
File "/usr/lib/
res = f(*args, **kwargs)
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
iface.
File "/usr/lib/
return self._proxy_
File "/usr/lib/
**keywords)
File "/usr/lib/
message, timeout)
DBusException: org.freedesktop
has been associated to https:/
"Traceback (most recent call last):
File "/usr/lib/
res = f(*args, **kwargs)
File "/usr/lib/
res = f(*args, **kwargs)
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
iface.
File "/usr/lib/
return self._proxy_
File "/usr/lib/
**keywords)
File "/usr/lib/
message, timeout)
DBusException: org.freedesktop
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/
* 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(
/usr/share/
* With this apport update (you need to rm the .crash and re-generate it), it will look like this instead:
/usr/
i. e. the errno 99 will be used to disambiguate/
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.
Related branches
Changed in whoopsie-daisy (Ubuntu): | |
assignee: | nobody → Evan Dandrea (ev) |
importance: | Undecided → High |
milestone: | none → ubuntu-12.10 |
Changed in daisy: | |
assignee: | nobody → Evan Dandrea (ev) |
importance: | Undecided → High |
no longer affects: | whoopsie-daisy (Ubuntu) |
Changed in apport (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in daisy: | |
status: | New → Confirmed |
Changed in daisy: | |
assignee: | Evan Dandrea (ev) → nobody |
Changed in apport (Ubuntu Trusty): | |
importance: | Undecided → High |
I believe the crash signature used by daisy is actually just the crash signature apport provides it. So the fix for this bug would need to happen in apport and its crash_signature function from report.py.