synapse-product/synapse
Sean Quah 84169a82dc
Avoid blocking lazy-loading /syncs during partial joins (#13477)
Use a state filter or accept partial state in a few places where we
request state, to avoid blocking.

To make lazy-loading `/sync`s work, we need to provide the memberships
of event senders, which are not guaranteed to be in the room state.
Instead we dig through auth events for memberships to present to
clients. The auth events of an event are guaranteed to contain a
passable membership event, otherwise the event would have been rejected.

Note that this only covers the common code paths encountered during
testing. There has been no exhaustive checking of all sync code paths.

Fixes #13146.

Signed-off-by: Sean Quah <seanq@matrix.org>
2022-08-18 11:53:02 +01:00
..
_scripts Merge branch 'master' into develop 2022-07-19 16:14:02 +02:00
api Support stable identifiers for MSC2285: private read receipts. (#13273) 2022-08-05 11:09:33 -04:00
app Refuse to start when faster_joins is enabled on a worker deployment (#13531) 2022-08-16 16:21:55 +01:00
appservice Add prometheus counters for content types other than events (#13175) 2022-07-13 15:18:20 +01:00
config Fix a typo in docs and in some warnings (#13538) 2022-08-17 10:59:05 +01:00
crypto Bump black and click versions (#12320) 2022-04-05 11:04:28 +01:00
events Update type of EventContext.rejected (#13460) 2022-08-04 17:45:01 +01:00
federation Instrument the federation/backfill part of /messages (#13489) 2022-08-16 12:39:40 -05:00
handlers Avoid blocking lazy-loading /syncs during partial joins (#13477) 2022-08-18 11:53:02 +01:00
http Use Pydantic to systematically validate a first batch of endpoints in synapse.rest.client.account. (#13188) 2022-08-15 19:05:57 +00:00
logging Instrument the federation/backfill part of /messages (#13489) 2022-08-16 12:39:40 -05:00
metrics Add missing types to opentracing. (#13345) 2022-07-21 12:01:52 +00:00
module_api Update module API "update room membership" method to allow for remote joins (#13441) 2022-08-05 09:37:58 +00:00
push Fix breaking event sending due to bad push rule (#13547) 2022-08-17 11:02:38 +00:00
replication Support stable identifiers for MSC2285: private read receipts. (#13273) 2022-08-05 11:09:33 -04:00
res Add viewport directive to HTML templates to optimise for mobile (#13493) 2022-08-11 14:04:20 +01:00
rest Add forgotten status to Room Details API (#13503) 2022-08-17 09:42:01 +00:00
server_notices Decouple synapse.api.auth_blocking.AuthBlocking from synapse.api.auth.Auth. (#13021) 2022-06-14 09:51:15 +01: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 Correct a misnamed argument in state res v2 (#13467) 2022-08-08 16:59:56 +01:00
static Add viewport directive to HTML templates to optimise for mobile (#13493) 2022-08-11 14:04:20 +01:00
storage Avoid blocking lazy-loading /syncs during partial joins (#13477) 2022-08-18 11:53:02 +01:00
streams Instrument /messages for understandable traces in Jaeger (#13368) 2022-08-03 10:57:38 -05:00
util Add metrics to track how the rate limiter is affecting requests (sleep/reject) (#13534) 2022-08-17 16:10:07 -05:00
__init__.py Fix Synapse git info missing in version strings (#12973) 2022-06-07 15:24:11 +01:00
event_auth.py Implement MSC3848: Introduce errcodes for specific event sending failures (#13343) 2022-07-27 13:44:40 +01:00
notifier.py Notifier: accept callbacks to fire on room joins (#13254) 2022-07-13 19:48:24 +01:00
py.typed Mark Module API error imports as re-exported and mark Synapse as containing type annotations (#11054) 2021-10-13 08:42:41 +01:00
server.py Move the "email unsubscribe" resource, refactor the macaroon generator & simplify the access token verification logic. (#12986) 2022-06-14 09:12:08 -04:00
types.py Fix destination_is errors seen in sentry. (#13041) 2022-06-14 18:28:26 +01:00
visibility.py Add some miscellaneous comments around sync (#13474) 2022-08-10 12:58:20 +01:00