Improve error msg when key-fetch fails (#5896)

There's no point doing a raise_from here, because the exception is always
logged at warn with no stacktrace in the caller. Instead, let's try to give
better messages to reduce confusion.

In particular, this means that we won't log 'Failed to connect to remote
server' when we don't even attempt to connect to the remote server due to
blacklisting.
This commit is contained in:
Richard van der Hoff 2019-08-22 10:42:06 +01:00 committed by GitHub
parent 4dab867288
commit ef1c524bb3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

1
changelog.d/5896.misc Normal file
View file

@ -0,0 +1 @@
Improve the logging when we have an error when fetching signing keys.

View file

@ -18,7 +18,6 @@ import logging
from collections import defaultdict from collections import defaultdict
import six import six
from six import raise_from
from six.moves import urllib from six.moves import urllib
import attr import attr
@ -657,9 +656,10 @@ class PerspectivesKeyFetcher(BaseV2KeyFetcher):
}, },
) )
except (NotRetryingDestination, RequestSendFailed) as e: except (NotRetryingDestination, RequestSendFailed) as e:
raise_from(KeyLookupError("Failed to connect to remote server"), e) # these both have str() representations which we can't really improve upon
raise KeyLookupError(str(e))
except HttpResponseException as e: except HttpResponseException as e:
raise_from(KeyLookupError("Remote server returned an error"), e) raise KeyLookupError("Remote server returned an error: %s" % (e,))
keys = {} keys = {}
added_keys = [] added_keys = []
@ -821,9 +821,11 @@ class ServerKeyFetcher(BaseV2KeyFetcher):
timeout=10000, timeout=10000,
) )
except (NotRetryingDestination, RequestSendFailed) as e: except (NotRetryingDestination, RequestSendFailed) as e:
raise_from(KeyLookupError("Failed to connect to remote server"), e) # these both have str() representations which we can't really improve
# upon
raise KeyLookupError(str(e))
except HttpResponseException as e: except HttpResponseException as e:
raise_from(KeyLookupError("Remote server returned an error"), e) raise KeyLookupError("Remote server returned an error: %s" % (e,))
if response["server_name"] != server_name: if response["server_name"] != server_name:
raise KeyLookupError( raise KeyLookupError(