summary refs log tree commit diff
path: root/synapse/util/retryutils.py (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-06-16Fix "argument of type 'ObservableDeferred' is not iterable" error (#7708)Patrick Cloke3-5/+7
2020-06-16Add instructions for authing with Keycloak via OpenID (#7659)hungrymonkey2-0/+45
2020-06-16Include a user agent in federation requests. (#7677)Patrick Cloke5-4/+43
2020-06-16Replace all remaining six usage with native Python 3 equivalents (#7704)Dagfinn Ilmari Mannsåker73-237/+111
2020-06-16Convert the device message and pagination handlers to async/await. (#7678)Patrick Cloke3-31/+19
2020-06-16Create a ListenerConfig object (#7681)Richard van der Hoff13-167/+248
This ended up being a bit more invasive than I'd hoped for (not helped by generic_worker duplicating some of the code from homeserver), but hopefully it's an improvement. The idea is that, rather than storing unstructured `dict`s in the config for the listener configurations, we instead parse it into a structured `ListenerConfig` object.
2020-06-16Fix changelog wording v1.15.1 github/release-v1.15.1 release-v1.15.1Brendan Abolivier1-2/+2
2020-06-161.15.1Brendan Abolivier5-3/+17
2020-06-16Wrap register_device coroutine in an ensureDeferred (#7684)Andrew Morgan4-5/+62
Fixes https://github.com/matrix-org/synapse/issues/7683 Broke in: #7649 We had a `yield` acting on a coroutine. To be fair this one is a bit difficult to notice as there's a function in the middle that just passes the coroutine along.
2020-06-15Ensure the body is a string before comparing push rules. (#7701)Patrick Cloke3-11/+33
2020-06-15Ensure etag is a string for GET room_keys/version response (#7691)Hubert Chathi3-0/+3
2020-06-15Update m.id.phone to use 'phone' instead of 'number' (#7687)Andrew Morgan2-2/+11
The spec [states](https://matrix.org/docs/spec/client_server/r0.6.1#phone-number) that `m.id.phone` requires the field `country` and `phone`. In Synapse, we've been enforcing `country` and `number`. I am not currently sure whether this affects any client implementations. This issue was introduced in #1994.
2020-06-15Fix "There was no active span when trying to log." error (#7698)Erik Johnston2-0/+2
2020-06-15Enable 3PID add/bind/unbind endpoints on r0 routesBrendan Abolivier2-3/+4
2020-06-15Discard RDATA from already seen positions. (#7648)Patrick Cloke6-27/+175
2020-06-15Replace iteritems/itervalues/iterkeys with native versions. (#7692)Patrick Cloke47-263/+184
2020-06-12Fix warnings about losing log context during UI auth. (#7688)Patrick Cloke2-1/+2
2020-06-12Fix a typo when comparing the URI & method during UI Auth. (#7689)Patrick Cloke2-1/+2
2020-06-11Remove "user_id" from GET /presence. (#7606)Will Hunt2-1/+4
2020-06-111.15.0 v1.15.0 github/release-v1.15.0 release-v1.15.0Brendan Abolivier3-1/+13
2020-06-11Increase the default SAML session expirary time to 15 minutes. (#7664)Patrick Cloke3-3/+4
2020-06-11fix typo in sample_config.yaml (#7652)wondratsch3-2/+3
Just a simple typo fix. Signed-off-by: wondratsch 28294257+wondratsch@users.noreply.github.com
2020-06-10Take out a lock before modifying _CACHES (#7663)Richard van der Hoff2-5/+16
This should fix #7610.
2020-06-10Add option to enable encryption by default for new rooms (#7639)Andrew Morgan11-36/+275
Fixes https://github.com/matrix-org/synapse/issues/2431 Adds config option `encryption_enabled_by_default_for_room_type`, which determines whether encryption should be enabled with the default encryption algorithm in private or public rooms upon creation. Whether the room is private or public is decided based upon the room creation preset that is used. Part of this PR is also pulling out all of the individual instances of `m.megolm.v1.aes-sha2` into a constant variable to eliminate typos ala https://github.com/matrix-org/synapse/pull/7637 Based on #7637
2020-06-10Clean-up the fallback login code. (#7657)Patrick Cloke4-64/+130
2020-06-09Fix some attributionsBrendan Abolivier1-3/+3
2020-06-09Update CHANGES.mdRichard van der Hoff1-1/+1
fix a typo
2020-06-091.15.0rc1 v1.15.0rc1Brendan Abolivier45-44/+67
2020-06-09Revert "1.15.0rc1"Brendan Abolivier45-67/+44
This reverts commit 8587b0426fa4e65992aaa47158e991fa1797d3fb.
2020-06-091.15.0rc1Brendan Abolivier45-44/+67
2020-06-09Fix bug in account data replication stream. (#7656)Erik Johnston6-4/+35
* Ensure account data stream IDs are unique. The account data stream is shared between three tables, and the maximum allocated ID was tracked in a dedicated table. Updating the max ID happened outside the transaction that allocated the ID, leading to a race where if the server was restarted then the same ID could be allocated but the max ID failed to be updated, leading it to be reused. The ID generators have support for tracking across multiple tables, so we may as well use that instead of a dedicated table. * Fix bug in account data replication stream. If the same stream ID was used in both global and room account data then the getting updates for the replication stream would fail due to `heapq.merge(..)` trying to compare a `str` with a `None`. (This is because you'd have two rows like `(534, '!room')` and `(534, None)` from the room and global account data tables). Fix is just to order by stream ID, since we don't rely on the ordering beyond that. The bug where stream IDs can be reused should be fixed now, so this case shouldn't happen going forward. Fixes #7617
2020-06-08Convert the registration handler to async/await. (#7649)Patrick Cloke3-68/+48
2020-06-08Accept device information at the login fallback endpoint. (#7629)Patrick Cloke2-35/+121
2020-06-05Convert user directory handler and related classes to async/await. (#7640)Patrick Cloke6-111/+78
2020-06-05Add an option to disable autojoin for guest accounts (#6637)Travis Ralston5-1/+33
Fixes https://github.com/matrix-org/synapse/issues/3177
2020-06-05Clarifications to the admin api documentation (#7647)Richard van der Hoff8-89/+126
* Clarify how to authenticate * path params are not the same thing as query params * Fix documentation for `/_synapse/admin/v2/users/<user_id>`
2020-06-05Update to the stable SSO prefix for UI Auth. (#7630)Patrick Cloke2-1/+2
2020-06-05Fix type information on `assert_*_is_admin` methods (#7645)Richard van der Hoff3-23/+19
These things don't return Deferreds.
2020-06-05Remove some unused constants. (#7644)Richard van der Hoff2-4/+1
2020-06-05Typo fixes.Patrick Cloke2-2/+2
2020-06-05Allow new users to be registered via the admin API even if the monthly ↵Dirk Klimpel4-16/+172
active user limit has been reached (#7263)
2020-06-05Add device management to admin API (#7481)Dirk Klimpel5-0/+920
- Admin is able to - change displaynames - delete devices - list devices - get device informations Fixes #7330
2020-06-05Attempt to fix PhoneHomeStatsTestCase.test_performance_100 being flaky. (#7634)Patrick Cloke2-19/+24
2020-06-05Support CS API v0.6.0 (#6585)Andrew Morgan2-15/+2
2020-06-05Add support for webp thumbnailing (#7586)WGH3-36/+101
Closes #4382 Signed-off-by: Maxim Plotnikov <wgh@torlan.ru>
2020-06-05Performance improvements and refactor of Ratelimiter (#7595)Andrew Morgan19-230/+322
While working on https://github.com/matrix-org/synapse/issues/5665 I found myself digging into the `Ratelimiter` class and seeing that it was both: * Rather undocumented, and * causing a *lot* of config checks This PR attempts to refactor and comment the `Ratelimiter` class, as well as encourage config file accesses to only be done at instantiation. Best to be reviewed commit-by-commit.
2020-06-04Fix encryption algorithm typos in tests/comments (#7637)Andrew Morgan4-10/+11
@uhoreg has confirmed these were both typos. They are only in comments and tests though, rather than anything critical. Introduced in: * https://github.com/matrix-org/synapse/pull/7157 * https://github.com/matrix-org/synapse/pull/5726
2020-06-04Advertise the token login type when OpenID Connect is enabled. (#7631)Patrick Cloke2-8/+4
2020-06-03Cleanups to the OpenID Connect integration (#7628)Richard van der Hoff8-324/+428
docs, default configs, comments. Nothing very significant.
2020-06-03async/await get_user_id_by_threepid (#7620)Andrew Morgan4-28/+29
Based on #7619 async's `get_user_id_by_threepid` and its call stack.
2020-06-03Check the changelog number in check-newsfragment (#7623)Richard van der Hoff2-4/+17
2020-06-03Replace instances of reactor pumping with get_success. (#7619)Andrew Morgan3-121/+152
Calls `self.get_success` on all deferred methods instead of abusing `self.pump()`. This has the benefit of working with coroutines, as well as checking that method execution completed successfully. There are also a few small cleanups that I made in the process.
2020-06-03Check if the localpart is reserved for guests earlier in the registration ↵Brendan Abolivier2-9/+10
flow (#7625) This is so the user is warned about the username not being valid as soon as possible, rather than only once they've finished UIA.
2020-06-03Fix exceptions when fetching events from a down host. (#7622)Erik Johnston2-1/+2
We already caught some exceptions, but not all.
2020-06-03`synctl restart` should start synapse if it wasn't running (#7624)Richard van der Hoff2-1/+2
2020-06-03Switch back to upstream dh-virtualenv (#7621)Richard van der Hoff2-1/+2
Upstream have merged our changes (https://github.com/spotify/dh-virtualenv/pull/300), so let's switch back to it instead of using our fork.
2020-06-03Fix typo in PR link github/release-v1.14.0 release-v1.14.0Richard van der Hoff1-1/+1
2020-06-03Clean up exception handling in SAML2ResponseResource (#7614)Richard van der Hoff7-61/+77
* Expose `return_html_error`, and allow it to take a Jinja2 template instead of a raw string * Clean up exception handling in SAML2ResponseResource * use the existing code in `return_html_error` instead of re-implementing it (giving it a jinja2 template rather than inventing a new form of template) * do the exception-catching in the REST layer rather than in the handler layer, to make sure we catch all exceptions.
2020-06-02update grafana dashboardRichard van der Hoff1-88/+525
2020-06-01Mention #synapse:matrix.org in README troubleshooting (#7603)Andrew Morgan2-1/+5
Just in case people head straight to the troubleshooting section and find themselves at a dead end.
2020-06-01Advertise Python 3.8 support in setup.py (#7602)Andrew Morgan2-0/+2
Synapse supports Python 3.8. We've been using it in CI for a while now.
2020-06-01Fix a bug in automatic user creation with m.login.jwt. (#7585)Olof Johansson3-7/+162
2020-06-01Process cross-signing keys when resyncing device lists (#7594)Brendan Abolivier4-18/+119
It looks like `user_device_resync` was ignoring cross-signing keys from the results received from the remote server. This patch fixes this, by processing these keys using the same process `_handle_signing_key_updates` does (and effectively factor that part out of that function).
2020-06-01Email notifications for new users when creating via the Admin API. (#7267)Dirk Klimpel3-0/+92
2020-06-01Improve performance of _get_state_groups_from_groups_txn (#7567)Dagfinn Ilmari Mannsåker2-6/+7
The query keeps showing up in my slow query log. This changes the plan under the top-level Sort node from ``` WindowAgg (cost=280335.88..292963.15 rows=561212 width=80) (actual time=138.651..160.562 rows=27112 loops=1) -> Sort (cost=280335.88..281738.91 rows=561212 width=84) (actual time=138.597..140.622 rows=27112 loops=1) Sort Key: state_groups_state.type, state_groups_state.state_key, state_groups_state.state_group Sort Method: quicksort Memory: 4581kB -> Nested Loop (cost=2.83..226745.22 rows=561212 width=84) (actual time=21.548..47.657 rows=27112 loops=1) -> HashAggregate (cost=2.27..3.28 rows=101 width=8) (actual time=21.526..21.535 rows=20 loops=1) Group Key: state.state_group -> CTE Scan on state (cost=0.00..2.02 rows=101 width=8) (actual time=21.280..21.493 rows=20 loops=1) -> Index Scan using state_groups_state_type_idx on state_groups_state (cost=0.56..2189.40 rows=5557 width=84) (actual time=0.005..0.991 rows=1356 loops=20) Index Cond: (state_group = state.state_group) ``` to ``` Nested Loop (cost=2.83..226745.22 rows=561212 width=84) (actual time=24.194..52.834 rows=27112 loops=1) -> HashAggregate (cost=2.27..3.28 rows=101 width=8) (actual time=24.130..24.138 rows=20 loops=1) Group Key: state.state_group -> CTE Scan on state (cost=0.00..2.02 rows=101 width=8) (actual time=23.887..24.113 rows=20 loops=1) -> Index Scan using state_groups_state_type_idx on state_groups_state (cost=0.56..2189.40 rows=5557 width=84) (actual time=0.016..1.159 rows=1356 loops=20) Index Cond: (state_group = state.state_group) ``` This cuts the execution time from ~190ms to ~130ms, i.e. a reduction of ~30%. The full plans are visualised at https://explain.depesz.com/s/WpbT and https://explain.depesz.com/s/KlEk Signed-off-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
2020-06-01Convert groups local and server to async/await. (#7600)Patrick Cloke3-190/+150
2020-06-01Don't fail all of an iteration of the device list retry loop on error (#7609)Brendan Abolivier2-15/+22
Without this patch, if an error happens which isn't caught by `user_device_resync`, then `_maybe_retry_device_resync` would fail, without retrying the next users in the iteration. This patch fixes this so that it now only logs an error in this case.
2020-06-01Use upsert when inserting read receipts (#7607)Dagfinn Ilmari Mannsåker2-9/+5
Fixes #7469 Signed-off-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
2020-05-30Update OpenBSD installation instructions (#7587)hashashini2-22/+41
Synapse was added to the ports tree in Nov, 2019 by Renaud Allard (https://marc.info/?l=openbsd-ports&m=157417848805329). With the release of OpenBSD 6.7 on May 22, 2020 a pre-compiled binary is available as well.
2020-05-29Fix 'FederationGroupsRoomsServlet' API when group has room server is not in. ↵Erik Johnston2-8/+13
(#7599)
2020-05-29Make inflight background metrics more efficient. (#7597)Erik Johnston2-34/+71
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2020-05-28Add entry to set dependency against psql service (#7591)David Rio Deiros2-0/+4
2020-05-28Update debian changelog v1.14.0Brendan Abolivier1-0/+6