synapse/tests
Richard van der Hoff 1c262431f9
Fix handling of connection timeouts in outgoing http requests (#8400)
* Remove `on_timeout_cancel` from `timeout_deferred`

The `on_timeout_cancel` param to `timeout_deferred` wasn't always called on a
timeout (in particular if the canceller raised an exception), so it was
unreliable. It was also only used in one place, and to be honest it's easier to
do what it does a different way.

* Fix handling of connection timeouts in outgoing http requests

Turns out that if we get a timeout during connection, then a different
exception is raised, which wasn't always handled correctly.

To fix it, catch the exception in SimpleHttpClient and turn it into a
RequestTimedOutError (which is already a documented exception).

Also add a description to RequestTimedOutError so that we can see which stage
it failed at.

* Fix incorrect handling of timeouts reading federation responses

This was trapping the wrong sort of TimeoutError, so was never being hit.

The effect was relatively minor, but we should fix this so that it does the
expected thing.

* Fix inconsistent handling of `timeout` param between methods

`get_json`, `put_json` and `delete_json` were applying a different timeout to
the response body to `post_json`; bring them in line and test.

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Erik Johnston <erik@matrix.org>
2020-09-29 10:29:21 +01:00
..
api Stop sub-classing object (#8249) 2020-09-04 06:54:56 -04:00
app Create a ListenerConfig object (#7681) 2020-06-16 12:44:07 +01:00
appservice Convert appservice to async. (#7973) 2020-07-30 07:27:39 -04:00
config Use the default templates when a custom template file cannot be found (#8037) 2020-08-17 17:05:00 +01:00
crypto Create a mechanism for marking tests "logcontext clean" (#8399) 2020-09-28 17:58:33 +01:00
events Convert the message handler to async/await. (#7884) 2020-07-22 12:29:15 -04:00
federation Catch-up after Federation Outage (bonus): Catch-up on Synapse Startup (#8322) 2020-09-18 14:59:13 +01:00
handlers Allow existing users to login via OpenID Connect. (#8345) 2020-09-25 07:01:45 -04:00
http Fix handling of connection timeouts in outgoing http requests (#8400) 2020-09-29 10:29:21 +01:00
logging Stop sub-classing object (#8249) 2020-09-04 06:54:56 -04:00
module_api Convert simple_select_one and simple_select_one_onecol to async (#8162) 2020-08-26 07:19:32 -04:00
push Stop sub-classing object (#8249) 2020-09-04 06:54:56 -04:00
replication Add EventStreamPosition type (#8388) 2020-09-24 13:24:17 +01:00
rest Fixed a bug with reactivating users with the admin API (#8362) 2020-09-22 18:19:01 +01:00
scripts Port register_new_matrix_user to Python 3 and add tests (#4085) 2018-10-26 22:05:22 +11:00
server_notices Allow for make_awaitable's return value to be re-used. (#8261) 2020-09-08 07:26:55 -04:00
state Stop sub-classing object (#8249) 2020-09-04 06:54:56 -04:00
storage Add checks for postgres sequence consistency (#8402) 2020-09-28 18:00:30 +01:00
test_utils Update test logging to be able to accept braces (#8335) 2020-09-18 07:56:40 -04:00
util Stop sub-classing object (#8249) 2020-09-04 06:54:56 -04:00
__init__.py Move patch_inline_callbacks into synapse/ 2019-10-10 10:53:06 +01:00
server.py Simplify super() calls to Python 3 syntax. (#8344) 2020-09-18 09:56:44 -04:00
test_distributor.py Run black. 2018-08-10 23:54:09 +10:00
test_event_auth.py Implement room version 6 (MSC2240). (#7506) 2020-05-15 09:30:10 -04:00
test_federation.py Convert simple_update* and simple_select* to async (#8173) 2020-08-27 07:08:38 -04:00
test_mau.py Fix some spelling mistakes / typos. (#7811) 2020-07-09 09:52:58 -04:00
test_metrics.py Allow configuration of Synapse's cache without using synctl or environment variables (#6391) 2020-05-11 18:45:23 +01:00
test_phone_home.py Remove the psutil dependency (#6318) 2019-11-05 05:05:48 +11:00
test_preview.py Run Black. (#5482) 2019-06-20 19:32:02 +10:00
test_server.py Iteratively encode JSON responses to avoid blocking the reactor. (#8013) 2020-08-18 08:49:59 -04:00
test_state.py Simplify super() calls to Python 3 syntax. (#8344) 2020-09-18 09:56:44 -04:00
test_terms_auth.py Replace all remaining six usage with native Python 3 equivalents (#7704) 2020-06-16 08:51:47 -04:00
test_test_utils.py Run black. 2018-08-10 23:54:09 +10:00
test_types.py Validate the alt_aliases property of canonical alias events (#6971) 2020-03-03 07:12:45 -05:00
test_visibility.py Stop sub-classing object (#8249) 2020-09-04 06:54:56 -04:00
unittest.py Add checks for postgres sequence consistency (#8402) 2020-09-28 18:00:30 +01:00
utils.py Stop sub-classing object (#8249) 2020-09-04 06:54:56 -04:00