diff options
author | Erik Johnston <erik@matrix.org> | 2015-02-04 16:28:12 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-02-04 16:28:12 +0000 |
commit | ae46f10fc5dba0f81518e3144ab8d9ed7a7d03bc (patch) | |
tree | ca543f43db03346741aae11c9b575e66a39dbf7a /synapse/federation/transaction_queue.py | |
parent | When returning lists of servers from alias lookups, put the current server fi... (diff) | |
download | synapse-ae46f10fc5dba0f81518e3144ab8d9ed7a7d03bc.tar.xz |
Apply sanity to the transport client interface. Convert 'make_join' and 'send_join' to accept iterables of destinations
Diffstat (limited to 'synapse/federation/transaction_queue.py')
-rw-r--r-- | synapse/federation/transaction_queue.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/synapse/federation/transaction_queue.py b/synapse/federation/transaction_queue.py index 9d4f2c09a2..f38aeba7cc 100644 --- a/synapse/federation/transaction_queue.py +++ b/synapse/federation/transaction_queue.py @@ -19,6 +19,7 @@ from twisted.internet import defer from .persistence import TransactionActions from .units import Transaction +from synapse.api.errors import HttpResponseException from synapse.util.logutils import log_function from synapse.util.logcontext import PreserveLoggingContext @@ -238,9 +239,14 @@ class TransactionQueue(object): del p["age_ts"] return data - code, response = yield self.transport_layer.send_transaction( - transaction, json_data_cb - ) + try: + response = yield self.transport_layer.send_transaction( + transaction, json_data_cb + ) + code = 200 + except HttpResponseException as e: + code = e.code + response = e.response logger.info("TX [%s] got %d response", destination, code) @@ -274,8 +280,7 @@ class TransactionQueue(object): pass logger.debug("TX [%s] Yielded to callbacks", destination) - - except Exception as e: + except RuntimeError as e: # We capture this here as there as nothing actually listens # for this finishing functions deferred. logger.warn( @@ -283,6 +288,14 @@ class TransactionQueue(object): destination, e, ) + except Exception as e: + # We capture this here as there as nothing actually listens + # for this finishing functions deferred. + logger.exception( + "TX [%s] Problem in _attempt_transaction: %s", + destination, + e, + ) self.set_retrying(destination, retry_interval) |