Handle HttpResponseException when using federation client.
Otherwise we just log exceptions everywhere.pull/5385/head
							parent
							
								
									4f581faa98
								
							
						
					
					
						commit
						a46ef1e3a4
					
				|  | @ -42,7 +42,7 @@ from signedjson.sign import sign_json | |||
| 
 | ||||
| from twisted.internet import defer | ||||
| 
 | ||||
| from synapse.api.errors import RequestSendFailed, SynapseError | ||||
| from synapse.api.errors import HttpResponseException, RequestSendFailed, SynapseError | ||||
| from synapse.metrics.background_process_metrics import run_as_background_process | ||||
| from synapse.types import get_domain_from_id | ||||
| from synapse.util.logcontext import run_in_background | ||||
|  | @ -194,7 +194,7 @@ class GroupAttestionRenewer(object): | |||
|                 yield self.store.update_attestation_renewal( | ||||
|                     group_id, user_id, attestation | ||||
|                 ) | ||||
|             except RequestSendFailed as e: | ||||
|             except (RequestSendFailed, HttpResponseException) as e: | ||||
|                 logger.warning( | ||||
|                     "Failed to renew attestation of %r in %r: %s", | ||||
|                     user_id, group_id, e, | ||||
|  |  | |||
|  | @ -49,9 +49,7 @@ def _create_rerouter(func_name): | |||
|             def http_response_errback(failure): | ||||
|                 failure.trap(HttpResponseException) | ||||
|                 e = failure.value | ||||
|                 if e.code == 403: | ||||
|                     raise e.to_synapse_error() | ||||
|                 return failure | ||||
|                 raise e.to_synapse_error() | ||||
| 
 | ||||
|             def request_failed_errback(failure): | ||||
|                 failure.trap(RequestSendFailed) | ||||
|  |  | |||
|  | @ -15,12 +15,15 @@ | |||
| 
 | ||||
| import logging | ||||
| 
 | ||||
| from six import raise_from | ||||
| 
 | ||||
| from twisted.internet import defer | ||||
| 
 | ||||
| from synapse.api.errors import ( | ||||
|     AuthError, | ||||
|     CodeMessageException, | ||||
|     Codes, | ||||
|     HttpResponseException, | ||||
|     RequestSendFailed, | ||||
|     StoreError, | ||||
|     SynapseError, | ||||
| ) | ||||
|  | @ -85,10 +88,10 @@ class BaseProfileHandler(BaseHandler): | |||
|                     ignore_backoff=True, | ||||
|                 ) | ||||
|                 defer.returnValue(result) | ||||
|             except CodeMessageException as e: | ||||
|                 if e.code != 404: | ||||
|                     logger.exception("Failed to get displayname") | ||||
|                 raise | ||||
|             except RequestSendFailed as e: | ||||
|                 raise_from(SynapseError(502, "Failed to fetch profile"), e) | ||||
|             except HttpResponseException as e: | ||||
|                 raise e.to_synapse_error() | ||||
| 
 | ||||
|     @defer.inlineCallbacks | ||||
|     def get_profile_from_cache(self, user_id): | ||||
|  | @ -142,10 +145,10 @@ class BaseProfileHandler(BaseHandler): | |||
|                     }, | ||||
|                     ignore_backoff=True, | ||||
|                 ) | ||||
|             except CodeMessageException as e: | ||||
|                 if e.code != 404: | ||||
|                     logger.exception("Failed to get displayname") | ||||
|                 raise | ||||
|             except RequestSendFailed as e: | ||||
|                 raise_from(SynapseError(502, "Failed to fetch profile"), e) | ||||
|             except HttpResponseException as e: | ||||
|                 raise e.to_synapse_error() | ||||
| 
 | ||||
|             defer.returnValue(result["displayname"]) | ||||
| 
 | ||||
|  | @ -208,10 +211,10 @@ class BaseProfileHandler(BaseHandler): | |||
|                     }, | ||||
|                     ignore_backoff=True, | ||||
|                 ) | ||||
|             except CodeMessageException as e: | ||||
|                 if e.code != 404: | ||||
|                     logger.exception("Failed to get avatar_url") | ||||
|                 raise | ||||
|             except RequestSendFailed as e: | ||||
|                 raise_from(SynapseError(502, "Failed to fetch profile"), e) | ||||
|             except HttpResponseException as e: | ||||
|                 raise e.to_synapse_error() | ||||
| 
 | ||||
|             defer.returnValue(result["avatar_url"]) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Erik Johnston
						Erik Johnston