Comment 4 for bug 989819

Revision history for this message
Martin Pitt (pitti) wrote : Re: the signatures match code should probably consider the exception for python errors

Due to the nature of Python exceptions this indeed can only ever be a heuristic. Some Python errors are already very specific, and we *don't* want their message be part of the signature. For example, we want to treat PermissionError('/home/fred/foo') and PermissionError('/home/joe/bar') as one and the same bug. Likewise, in the example in the description we would want "org.freedesktop.Accounts.Error.Failed: 'bg_BG.UTF-8' is not a valid locale name" to be treated exactly the same as any other locale name. Exception messages also often have localized or otherwise user/system specific context in them.

For DBusError the situation is still relatively easy -- this is a well-known one from dbus-python which actually wraps a "real" exception on the server. For the duplicate signature we certainly should unwrap that inner exception, so that we end up with something like "DBusException:org.freedesktop.Accounts.Error.PermissionDenied".

The other case of pyapt's SystemErrors are harder to dissect as there is no structure in the exceptions and their messages. So the only real options that we have are to keep the status quo (don't use the message at all) or take it wholesale. But I think the latter wouldn't be helpful as it would consider too many things as "not the same bug". One could go further and just take the last word, but I think that would be completely arbitrary and still not help (translations/not capturing the important part).

So I propose to do one step at a time and unwrap DBusExceptions for now.