Patrick Cloke
f685318c2a
Use ClientRestResource on both the main process and workers. ( #14528 )
...
Add logic to ClientRestResource to decide whether to mount servlets
or not based on whether the current process is a worker.
This is clearer to see what a worker runs than the completely separate /
copy & pasted list of servlets being mounted for workers.
2022-12-02 13:10:05 -05:00
reivilibre
9af2be192a
Remove legacy Prometheus metrics names. They were deprecated in Synapse v1.69.0 and disabled by default in Synapse v1.71.0. ( #14538 )
2022-11-24 09:09:17 +00:00
realtyem
c15e9a0edb
Remove need for `worker_main_http_uri` setting to use /keys/upload. ( #14400 )
2022-11-16 22:16:25 +00:00
Tuomas Ojamies
b5ab2c428a
Support using SSL on worker endpoints. ( #14128 )
...
* Fix missing SSL support in worker endpoints.
* Add changelog
* SSL for Replication endpoint
* Remove unit test change
* Refactor listener creation to reduce duplicated code
* Fix the logger message
* Update synapse/app/_base.py
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* Update synapse/app/_base.py
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* Update synapse/app/_base.py
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* Add config documentation for new TLS option
Co-authored-by: Tuomas Ojamies <tojamies@palantir.com>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
2022-11-15 12:55:00 +00:00
Nick Mills-Barrett
3a4f80f8c6
Merge/remove `Slaved*` stores into `WorkerStores` ( #14375 )
2022-11-11 10:51:49 +00:00
David Robertson
730b13dbc9
Improve `RawHeaders` type hints ( #14303 )
2022-10-28 16:04:02 +00:00
Patrick Cloke
755bfeee3a
Use servlets for /key/ endpoints. ( #14229 )
...
To fix the response for unknown endpoints under that prefix.
See MSC3743.
2022-10-20 11:32:47 -04:00
Patrick Cloke
c604d2c218
Mark /relations endpoint as usable on workers. ( #14028 )
...
Co-authored-by: Eric Eastwood <erice@element.io>
2022-10-12 06:46:13 -04:00
reivilibre
be4250c7a8
Add experimental configuration option to allow disabling legacy Prometheus metric names. ( #13540 )
...
Co-authored-by: David Robertson <davidr@element.io>
2022-08-24 11:35:54 +00:00
Sean Quah
f4ab6a4a96
Refuse to start when `faster_joins` is enabled on a worker deployment ( #13531 )
...
Synapse does not currently support faster room joins on deployments with
workers.
Signed-off-by: Sean Quah <seanq@matrix.org>
2022-08-16 16:21:55 +01:00
Nick Mills-Barrett
86e366a46e
Remove old empty/redundant slaved stores. ( #13349 )
2022-07-21 17:56:45 +00:00
Nick Mills-Barrett
190f49d8ab
Use cache store remove base slaved ( #13329 )
...
This comes from two identical definitions in each of the base stores, and means the base slaved store is now empty and can be removed.
2022-07-21 11:51:30 +01:00
David Robertson
f30bcbd84a
Fix Synapse git info missing in version strings ( #12973 )
2022-06-07 15:24:11 +01:00
Patrick Cloke
cf05258f76
Remove groups replication code. ( #12900 )
...
The replication logic for groups is no longer used, so the message
passing infrastructure can be removed.
2022-05-31 13:04:08 -04:00
Patrick Cloke
a8db8c6eba
Remove user-visible groups/communities code ( #12553 )
...
Makes it so that groups/communities no longer exist from a user-POV. E.g. we remove:
* All API endpoints (including Client-Server, Server-Server, and admin).
* Documented configuration options (and the experimental flag, which is now unused).
* Special handling during room upgrades.
* The `groups` section of the `/sync` response.
2022-05-25 07:53:40 -04:00
Nick Mills-Barrett
1f9013ce60
Add the `batch_send` endpoint to generic workers ( #12868 )
2022-05-25 09:51:07 +00:00
Nick Mills-Barrett
2e5f88b5e6
Add the `/account/whoami` endpoint to generic workers ( #12866 )
2022-05-25 10:41:41 +01:00
reivilibre
699192fc1a
Add the `update_user_directory_from_worker` configuration option (superseding `update_user_directory`) to allow a generic worker to be designated as the worker to update the user directory. ( #12654 )
...
Co-authored-by: Shay <hillerys@element.io>
2022-05-10 11:08:45 +01:00
reivilibre
c2d50e9f6c
Add the `notify_appservices_from_worker` configuration option (superseding `notify_appservices`) to allow a generic worker to be designated as the worker to send traffic to Application Services. ( #12452 )
2022-05-06 11:43:53 +01:00
reivilibre
f871222880
Move `update_client_ip` background job from the main process to the background worker. ( #12251 )
2022-04-01 13:08:55 +01:00
Patrick Cloke
54f674f7a9
Deprecate the groups/communities endpoints and add an experimental configuration flag. ( #12200 )
2022-03-12 13:23:37 -05:00
Patrick Cloke
3e4af36bc8
Rename get_tcp_replication to get_replication_command_handler. ( #12192 )
...
Since the object it returns is a ReplicationCommandHandler.
This is clean-up from adding support to Redis where the command handler
was added as an additional layer of abstraction from the TCP protocol.
2022-03-10 13:01:56 +00:00
Richard van der Hoff
e24ff8ebe3
Remove `HomeServer.get_datastore()` ( #12031 )
...
The presence of this method was confusing, and mostly present for backwards
compatibility. Let's get rid of it.
Part of #11733
2022-02-23 11:04:02 +00:00
David Robertson
4ae956c8bb
Use version string helper from matrix-common ( #11979 )
...
* Require latest matrix-common
* Use the common function
2022-02-14 13:12:22 +00:00
Maximilian Bosch
42bf020463
Expose worker & homeserver as entrypoints in `setup.py` ( #11449 )
...
Co-authored-by: reivilibre <oliverw@matrix.org>
2021-11-30 16:52:45 +00:00
Tulir Asokan
7b4e228e41
Fix using MSC2716 batch sending with event persistence workers ( #11220 )
...
Signed-off-by: Tulir Asokan <tulir@beeper.com>
2021-11-29 13:13:23 +00:00
Aaron R
d993c3bb1e
Add support for `/_matrix/media/v3` APIs ( #11371 )
...
* Add support for `/_matrix/media/v3` APIs
Signed-off-by: Aaron Raimist <aaron@raim.ist>
* Update `workers.md` to use v3 client and media APIs
Signed-off-by: Aaron Raimist <aaron@raim.ist>
* Add changelog
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-11-17 15:30:24 +00:00
Patrick Cloke
5cace20bf1
Add missing type hints to `synapse.app`. ( #11287 )
2021-11-10 15:06:54 -05:00
Richard van der Hoff
71f9966f27
Support for serving server well-known files ( #11211 )
...
Fixes https://github.com/matrix-org/synapse/issues/8308
2021-11-01 15:10:16 +00:00
Sean Quah
2b82ec425f
Add type hints for most `HomeServer` parameters ( #11095 )
2021-10-22 18:15:41 +01:00
Patrick Cloke
94b620a5ed
Use direct references for configuration variables (part 6). ( #10916 )
2021-09-29 06:44:15 -04:00
Patrick Cloke
bb7fdd821b
Use direct references for configuration variables (part 5). ( #10897 )
2021-09-24 07:25:21 -04:00
Patrick Cloke
47854c71e9
Use direct references for configuration variables (part 4). ( #10893 )
2021-09-23 12:03:01 -04:00
Patrick Cloke
01c88a09cd
Use direct references for some configuration variables ( #10798 )
...
Instead of proxying through the magic getter of the RootConfig
object. This should be more performant (and is more explicit).
2021-09-13 13:07:12 -04:00
Patrick Cloke
1fdf2cf8e8
Document that /spaces & /hierarchy can be routed to workers. ( #10648 )
...
Also refactors some of the registration of endpoints on workers.
2021-09-08 11:02:31 -04:00
Azrenbeth
6e895366ea
Add config option to use non-default manhole password and keys ( #10643 )
2021-09-06 16:08:03 +01:00
Patrick Cloke
d12ba52f17
Persist room hierarchy pagination sessions to the database. ( #10613 )
2021-08-24 08:14:03 -04:00
Callum Brown
947dbbdfd1
Implement MSC3231: Token authenticated registration ( #10142 )
...
Signed-off-by: Callum Brown <callum@calcuode.com>
This is part of my GSoC project implementing [MSC3231](https://github.com/matrix-org/matrix-doc/pull/3231 ).
2021-08-21 22:14:43 +01:00
Andrew Morgan
84469bdac7
Remove the unused public_room_list_stream ( #10565 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2021-08-17 14:02:50 +01:00
reivilibre
642a42edde
Flatten the synapse.rest.client package ( #10600 )
2021-08-17 11:57:58 +00:00
V02460
b7f7ca24b1
Remove shebang line from module files ( #10415 )
...
Signed-off-by: Kai A. Hiller <V02460@gmail.com>
2021-07-29 21:34:14 +01:00
Jonathan de Jong
95e47b2e78
[pyupgrade] `synapse/` ( #10348 )
...
This PR is tantamount to running
```
pyupgrade --py36-plus --keep-percent-format `find synapse/ -type f -name "*.py"`
```
Part of #9744
2021-07-19 15:28:05 +01:00
Jonathan de Jong
bf72d10dbf
Use inline type hints in various other places (in `synapse/`) ( #10380 )
2021-07-15 11:02:43 +01:00
Erik Johnston
85d237eba7
Add a distributed lock ( #10269 )
...
This adds a simple best effort locking mechanism that works cross workers.
2021-06-29 19:15:47 +01:00
Richard van der Hoff
107c06081f
Ensure that errors during startup are written to the logs and the console. ( #10191 )
...
* Defer stdio redirection until we are about to start the reactor
* Catch and handle exceptions during startup
2021-06-21 11:41:25 +01:00
Brendan Abolivier
1b3e398bea
Standardise the module interface ( #10062 )
...
This PR adds a common configuration section for all modules (see docs). These modules are then loaded at startup by the homeserver. Modules register their hooks and web resources using the new `register_[...]_callbacks` and `register_web_resource` methods of the module API.
2021-06-18 12:15:52 +01:00
Erik Johnston
5eed6348ce
Move some more endpoints off master ( #10084 )
2021-05-27 22:45:43 +01:00
Erik Johnston
3e831f24ff
Don't hammer the database for destination retry timings every ~5mins ( #10036 )
2021-05-21 17:57:08 +01:00
Erik Johnston
ef889c98a6
Optionally track memory usage of each LruCache ( #9881 )
...
This will double count slightly in the presence of interned strings. It's off by default as it can consume a lot of resources.
2021-05-05 16:54:36 +01:00
Erik Johnston
1fb9a2d0bf
Limit how often GC happens by time. ( #9902 )
...
Synapse can be quite memory intensive, and unless care is taken to tune
the GC thresholds it can end up thrashing, causing noticable performance
problems for large servers. We fix this by limiting how often we GC a
given generation, regardless of current counts/thresholds.
This does not help with the reverse problem where the thresholds are set
too high, but that should only happen in situations where they've been
manually configured.
Adds a `gc_min_seconds_between` config option to override the defaults.
Fixes #9890 .
2021-05-05 16:53:45 +01:00