synapse-product/synapse/handlers
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
..
ui_auth Revert "Drop support for delegating email validation (#13192)" (#13406) 2022-07-29 10:29:23 +00:00
__init__.py Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
account_data.py Add StreamKeyType class and replace string literals with constants (#12567) 2022-05-16 15:35:31 +00:00
account_validity.py Implement cancellation support/protection for module callbacks (#12568) 2022-05-09 12:31:14 +01:00
account.py Optionally include account validity in MSC3720 account status responses (#12266) 2022-03-24 11:19:41 +01:00
admin.py Rename storage classes (#12913) 2022-05-31 12:17:50 +00:00
appservice.py Federation Sender & Appservice Pusher Stream Optimisations (#13251) 2022-07-15 09:36:56 +01:00
auth.py Implement MSC3848: Introduce errcodes for specific event sending failures (#13343) 2022-07-27 13:44:40 +01:00
cas.py Remove HomeServer.get_datastore() (#12031) 2022-02-23 11:04:02 +00:00
deactivate_account.py Add third_party module callbacks to check if a user can delete a room and deactivate a user (#12028) 2022-03-09 18:23:57 +00:00
device.py Add missing types to opentracing. (#13345) 2022-07-21 12:01:52 +00:00
devicemessage.py Additional constants for EDU types. (#12884) 2022-05-27 07:14:36 -04:00
directory.py Uniformize spam-checker API, part 5: expand other spam-checker callbacks to return Tuple[Codes, dict] (#13044) 2022-07-11 16:52:10 +00:00
e2e_keys.py Add missing types to opentracing. (#13345) 2022-07-21 12:01:52 +00:00
e2e_room_keys.py Add missing types to opentracing. (#13345) 2022-07-21 12:01:52 +00:00
event_auth.py Move some event auth checks out to a different method (#13065) 2022-06-15 19:48:22 +01:00
events.py Rename storage classes (#12913) 2022-05-31 12:17:50 +00:00
federation_event.py Time how long it takes us to do backfill processing (#13535) 2022-08-17 10:33:19 +01:00
federation.py Time how long it takes us to do backfill processing (#13535) 2022-08-17 10:33:19 +01:00
identity.py Revert "Drop support for delegating email validation (#13192)" (#13406) 2022-07-29 10:29:23 +00:00
initial_sync.py Support stable identifiers for MSC2285: private read receipts. (#13273) 2022-08-05 11:09:33 -04:00
message.py Faster room joins: make /joined_members block whilst the room is partial stated. (#13514) 2022-08-16 13:16:56 +01:00
oidc.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
pagination.py Instrument /messages for understandable traces in Jaeger (#13368) 2022-08-03 10:57:38 -05:00
password_policy.py Use direct references for some configuration variables (part 3) (#10885) 2021-09-23 07:13:34 -04:00
presence.py Refactor presence so we can prune user in room caches (#13313) 2022-07-25 09:21:06 +00:00
profile.py Use a single query in ProfileHandler.get_profile (#13209) 2022-07-07 11:02:09 +00:00
push_rules.py Add a module API to allow modules to edit push rule actions (#12406) 2022-04-27 13:55:33 +00:00
read_marker.py Refactor and convert Linearizer to async (#12357) 2022-04-05 15:43:52 +01:00
receipts.py Support stable identifiers for MSC2285: private read receipts. (#13273) 2022-08-05 11:09:33 -04:00
register.py Decouple synapse.api.auth_blocking.AuthBlocking from synapse.api.auth.Auth. (#13021) 2022-06-14 09:51:15 +01:00
relations.py Instrument /messages for understandable traces in Jaeger (#13368) 2022-08-03 10:57:38 -05:00
room_batch.py Rename storage classes (#12913) 2022-05-31 12:17:50 +00:00
room_list.py Use stable prefixes for MSC3827: filtering of /publicRooms by room type (#13370) 2022-07-27 19:46:57 +01:00
room_member_worker.py Implement knock feature (#6739) 2021-06-09 19:39:51 +01:00
room_member.py Add some tracing spans to give insight into local joins (#13439) 2022-08-03 10:19:34 -07:00
room_summary.py Revert 'Remove the unspecced field in the response. (#13365)' to give more time for clients to update. (#13501) 2022-08-11 10:27:48 +00:00
room.py Backfill remote event fetched by MSC3030 so we can paginate from it later (#13205) 2022-07-22 16:00:11 -05:00
saml.py Remove HomeServer.get_datastore() (#12031) 2022-02-23 11:04:02 +00:00
search.py Reduce the amount of state we pull from the DB (#12811) 2022-06-06 09:24:12 +01:00
send_email.py Support Implicit TLS for sending emails (#13317) 2022-07-25 16:27:19 +01:00
set_password.py Remove HomeServer.get_datastore() (#12031) 2022-02-23 11:04:02 +00:00
sso.py Use getClientAddress instead of getClientIP. (#12599) 2022-05-04 14:11:21 -04:00
state_deltas.py Remove HomeServer.get_datastore() (#12031) 2022-02-23 11:04:02 +00:00
stats.py Implement MSC3827: Filtering of /publicRooms by room type (#13031) 2022-06-29 17:12:45 +00:00
sync.py Avoid blocking lazy-loading /syncs during partial joins (#13477) 2022-08-18 11:53:02 +01:00
typing.py Copy room serials before handling in get_new_events_as (#13392) 2022-07-26 17:45:27 +00:00
user_directory.py Wait for lazy join to complete when getting current state (#12872) 2022-06-01 16:02:53 +01:00