synapse-product/synapse
Sean Quah d329a566df
Faster joins: Fix incompatibility with restricted joins (#14882)
* Avoid clearing out forward extremities when doing a second remote join

When joining a restricted room where the local homeserver does not have
a user able to issue invites, we perform a second remote join. We want
to avoid clearing out forward extremities in this case because the
forward extremities we have are up to date and clearing out forward
extremities creates a window in which the room can get bricked if
Synapse crashes.

Signed-off-by: Sean Quah <seanq@matrix.org>

* Do a full join when doing a second remote join into a full state room

We cannot persist a partial state join event into a joined full state
room, so we perform a full state join for such rooms instead. As a
future optimization, we could always perform a partial state join and
compute or retrieve the full state ourselves if necessary.

Signed-off-by: Sean Quah <seanq@matrix.org>

* Add lock around partial state flag for rooms

Signed-off-by: Sean Quah <seanq@matrix.org>

* Preserve partial state info when doing a second partial state join

Signed-off-by: Sean Quah <seanq@matrix.org>

* Add newsfile

* Add a TODO(faster_joins) marker

Signed-off-by: Sean Quah <seanq@matrix.org>
2023-01-22 19:19:31 +00:00
..
_scripts Always notify replication when a stream advances (#14877) 2023-01-20 18:02:18 +00:00
api Merge account data streams (#14826) 2023-01-13 14:57:43 +00:00
app Add listener health (#14747) 2023-01-11 12:00:38 +00:00
appservice Fix missing cache invalidation in application service code (#14670) 2022-12-12 18:13:43 +00:00
config Implement MSC3930: polls push rules (#14787) 2023-01-19 12:47:10 +00:00
crypto Add some clarifying comments and refactor a portion of the Keyring class for readability (#14804) 2023-01-13 12:37:28 +00:00
events Implement MSC3925: changes to bundling of edits (#14811) 2023-01-10 16:31:28 +00:00
federation Faster joins: Fix incompatibility with restricted joins (#14882) 2023-01-22 19:19:31 +00:00
handlers Faster joins: Fix incompatibility with restricted joins (#14882) 2023-01-22 19:19:31 +00:00
http Respond with proper error responses on unknown paths. (#14621) 2022-12-08 11:37:05 -05:00
logging Improve logging and opentracing for to-device message handling (#14598) 2022-12-06 09:52:55 +00:00
metrics Fix logging context warnings due to common usage metrics setup (#14574) 2022-11-28 15:25:18 +00:00
module_api Add set_displayname to the module API (#14629) 2023-01-11 18:41:52 +00:00
push Remove undocumented device from pushrules (#14727) 2023-01-09 17:17:24 +00:00
replication Reduce max time we wait for stream positions (#14881) 2023-01-20 21:04:33 +00:00
res Fix #11308 : Remove dependency on jquery on reCAPTCHA page (#14672) 2022-12-14 12:02:28 +00:00
rest Remove unnecessary reactor reference from _PerHostRatelimiter (#14842) 2023-01-16 13:16:19 +00:00
server_notices Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
spam_checker_api Fix import in module_api module and docs on the new check_event_for_spam signature (#12918) 2022-05-31 12:04:53 +02:00
state Allow compute_state_after_events to use partial state (#14676) 2022-12-14 14:52:35 +00:00
static Add viewport directive to HTML templates to optimise for mobile (#13493) 2022-08-11 14:04:20 +01:00
storage Always notify replication when a stream advances (#14877) 2023-01-20 18:02:18 +00:00
streams Implement message forward pagination from start when no from is given, fixes #12383 (#14149) 2022-11-24 09:10:51 +00:00
types Wait for streams to catch up when processing HTTP replication. (#14820) 2023-01-18 19:35:29 +00:00
util Remove unnecessary reactor reference from _PerHostRatelimiter (#14842) 2023-01-16 13:16:19 +00:00
__init__.py Parse SYNAPSE_ASYNC_IO_REACTOR env variable & log the reactor on startup (#14092) 2022-10-07 15:19:59 +01:00
event_auth.py Properly check for frozendicts in event auth code. (#14864) 2023-01-18 09:27:57 -05:00
notifier.py Always notify replication when a stream advances (#14877) 2023-01-20 18:02:18 +00:00
py.typed
server.py Always notify replication when a stream advances (#14877) 2023-01-20 18:02:18 +00:00
visibility.py Move StateFilter to synapse.types (#14668) 2022-12-12 16:19:30 +00:00