summary refs log tree commit diff
path: root/synapse/app/homeserver.py (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-07-081.16.0Richard van der Hoff3-1/+13
2020-07-02Fix a typo. v1.16.0rc2Patrick Cloke1-1/+1
2020-07-02Move 1.15.2 after 1.16.0rc2.Patrick Cloke1-20/+20
2020-07-021.16.0rc2Patrick Cloke4-3/+19
2020-07-02Remove an extraneous space. v1.15.2 github/release-v1.15.2 release-v1.15.2Patrick Cloke1-1/+1
2020-07-02Add links to the fixes.Patrick Cloke1-2/+2
2020-07-02Fix tense in the release notes.Patrick Cloke1-1/+1
2020-07-021.15.2Patrick Cloke3-1/+27
2020-07-02Correctly handle outliers as prev events over federationErik Johnston1-3/+3
2020-07-02Ensure that HTML pages served from Synapse include headers to avoid embedding.Patrick Cloke10-94/+103
2020-07-01Fix new metric where we used ms instead of seconds (#7771)Erik Johnston3-2/+3
Introduced in #7755, not yet released.
2020-07-01Pin link in CHANGES.md v1.16.0rc1Andrew Morgan1-1/+1
2020-07-01Fixes to CHANGES.mdAndrew Morgan1-8/+12
2020-07-011.16.0rc1Andrew Morgan45-44/+71
2020-07-01Back out MSC2625 implementation (#7761)Brendan Abolivier11-189/+53
2020-06-30Additional configuration options for auto-join rooms (#7763)Patrick Cloke6-71/+542
2020-06-30Add some metrics for inbound and outbound federation processing times (#7755)Erik Johnston5-17/+43
2020-06-30Explain the purpose of the "tests" conditional dependency requirement (#7751)Andrew Morgan2-0/+5
2020-06-26Add another yield point to state res v2 (#7746)Erik Johnston2-2/+11
2020-06-25Move flake8 to end. Don't exit script on failure (#7738)Andrew Morgan2-2/+3
2020-06-25Make tox actions work on Debian 10 (#7703)Dagfinn Ilmari Mannsåker2-4/+3
- Remove the requirement for a specific version of Python - Move dep comment to a separate line, Tox 3.7.0 like trailing ones Signed-off-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
2020-06-24Yield during large v2 state res. (#7735)Erik Johnston5-11/+62
State res v2 across large data sets can be very CPU intensive, and if all the relevant events are in the cache the algorithm will run from start to finish within a single reactor tick. This can result in blocking the reactor tick for several seconds, which can have major repercussions on other requests. To fix this we simply add the occaisonal `sleep(0)` during iterations to yield execution until the next reactor tick. The aim is to only do this for large data sets so that we don't impact otherwise quick resolutions.=
2020-06-24add org.matrix.login.jwt so that m.login.jwt can be deprecated (#7675)Sorunome3-4/+12
2020-06-23Set Content-Length for Metrics requests (#7730)Christian Svensson2-1/+5
HTTP requires the response to contain a Content-Length header unless chunked encoding is being used. Prometheus metrics endpoint did not set this, causing software such as prometheus-proxy to not be able to scrape synapse for metrics. Signed-off-by: Christian Svensson <blue@cmd.nu>
2020-06-23Sync ignored table names in synapse_port_db to current database schema (#7717)Patrick Cloke2-4/+13
2020-06-22Allow local media to be marked as safe from being quarantined. (#7718)Patrick Cloke7-107/+119
2020-06-22Convert directory handler to async/await (#7727)Patrick Cloke3-40/+33
2020-06-19Speed up state res v2 across large state differences. (#7725)Erik Johnston2-1/+3
2020-06-19Fixed typo by adding a 'g' to PostgreSQL (#7724)Jesse Riddle2-1/+2
2020-06-18add a commentRichard van der Hoff1-0/+2
2020-06-17Convert the typing handler to async/await. (#7679)Patrick Cloke3-24/+19
2020-06-17Require parameterized package version to be at least 0.7.0. (#7680)Oleg Girko2-1/+3
Older versions of `parameterized` package have no `parameterized_class` decorator. This decorator is used in tests. Signed-off-by: Oleg Girko <ol@infoserver.lv>
2020-06-17Fix unread counts in syncBrendan Abolivier3-2/+3
* Always return an unread_count in get_unread_event_push_actions_by_room_for_user * Don't always expect unread_count to be there so we don't take out sync entirely if something goes wrong
2020-06-17Ignore the UI Auth sessions when porting from sqlite to postgresql (#7711)Patrick Cloke2-7/+13
2020-06-17Add support for using rust-python-jaeger-reporter (#7697)Erik Johnston3-3/+40
2020-06-17Support running multiple media repos. (#7706)Erik Johnston4-4/+28
This requires a new config option to specify which media repo should be responsible for running background jobs to e.g. clear out expired URL preview caches.
2020-06-17Fetch from the r0 media path instead of the unspecced v1. (#7714)Patrick Cloke3-5/+6
2020-06-17Update postgres in the Docker compose example to 12-alpine. (#7696)lub2-1/+2
2020-06-16fix broken link in sample config (#7712)Richard van der Hoff3-2/+3
2020-06-16Refactor getting replication updates from database. (#7636)Erik Johnston9-72/+251
The aim here is to make it easier to reason about when streams are limited and when they're not, by moving the logic into the database functions themselves. This should mean we can kill of `db_query_to_update_function` function.
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-15Incorporate reviewBrendan Abolivier1-15/+11
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-12LintBrendan Abolivier1-3/+8
2020-06-12Incorporate review bitsBrendan Abolivier3-22/+20
2020-06-12Pre-populate the unread_count columnBrendan Abolivier1-0/+5
2020-06-12Don't update the schema versionBrendan Abolivier2-1/+1
2020-06-12Use attr instead of a dictBrendan Abolivier1-21/+31
2020-06-12LintBrendan Abolivier1-3/+1
2020-06-12Test that a mark_unread action updates the right counter when using a slave ↵Brendan Abolivier1-0/+15
store
2020-06-12Remove debug loggingBrendan Abolivier1-2/+0
2020-06-12Test that a mark_unread action updates the right counterBrendan Abolivier1-5/+16
2020-06-12Fix summary rotationBrendan Abolivier1-12/+35
2020-06-11Remove "user_id" from GET /presence. (#7606)Will Hunt2-1/+4
2020-06-11Log for invalid values of notifBrendan Abolivier1-0/+6
2020-06-11Fix SQLBrendan Abolivier1-3/+3
2020-06-11Fix schema updateBrendan Abolivier1-1/+1
2020-06-11LintBrendan Abolivier1-1/+2
2020-06-11Save the count of unread messages to event_push_summaryBrendan Abolivier3-20/+53
2020-06-11Actually act on mark_unreadBrendan Abolivier1-3/+7
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-10Appease mypyBrendan Abolivier1-1/+1
2020-06-10LintBrendan Abolivier1-3/+3
2020-06-10Use temporary prefixes as per the MSCBrendan Abolivier3-3/+5
2020-06-10Take out a lock before modifying _CACHES (#7663)Richard van der Hoff2-5/+16
This should fix #7610.
2020-06-10ChangelogBrendan Abolivier2-1/+1
2020-06-10Fix testsBrendan Abolivier2-17/+21
2020-06-10Use a more efficient way of calculating countersBrendan Abolivier1-23/+20
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-10Add a new unread_counter to sync responsesBrendan Abolivier3-3/+28
2020-06-10Clean-up the fallback login code. (#7657)Patrick Cloke4-64/+130
2020-06-10Rename dont_push into mark_unreadBrendan Abolivier2-5/+4
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
2020-05-281.14.0Brendan Abolivier2-1/+7
2020-05-27