summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2021-12-20 16:34:01 +0000
committerRichard van der Hoff <richard@matrix.org>2021-12-20 16:34:01 +0000
commit8e4083e2f62513c03c97085bb1f42e958980a8fc (patch)
tree57a00a31271d1e16e51dd6998799f18f0b7f03b9
parentReturn JSON errors for unknown resources under /matrix/client. (#11602) (diff)
parentDisable aggregation bundling on `/sync` responses (#11583) (diff)
downloadsynapse-8e4083e2f62513c03c97085bb1f42e958980a8fc.tar.xz
Merge remote-tracking branch 'origin/release-v1.49' into develop
-rw-r--r--changelog.d/11583.bugfix1
-rw-r--r--synapse/rest/client/sync.py10
-rw-r--r--tests/rest/client/test_relations.py10
3 files changed, 15 insertions, 6 deletions
diff --git a/changelog.d/11583.bugfix b/changelog.d/11583.bugfix
new file mode 100644

index 0000000000..d2ed113e21 --- /dev/null +++ b/changelog.d/11583.bugfix
@@ -0,0 +1 @@ +Fix a performance regression in `/sync` handling, introduced in 1.49.0. diff --git a/synapse/rest/client/sync.py b/synapse/rest/client/sync.py
index dd90ffa123..8c4b0f6e5d 100644 --- a/synapse/rest/client/sync.py +++ b/synapse/rest/client/sync.py
@@ -525,7 +525,15 @@ class SyncRestServlet(RestServlet): time_now=time_now, # Don't bother to bundle aggregations if the timeline is unlimited, # as clients will have all the necessary information. - bundle_aggregations=room.timeline.limited, + # bundle_aggregations=room.timeline.limited, + # + # richvdh 2021-12-15: disable this temporarily as it has too high an + # overhead for initialsyncs. We need to figure out a way that the + # bundling can be done *before* the events are stored in the + # SyncResponseCache so that this part can be synchronous. + # + # Ensure to re-enable the test at tests/rest/client/test_relations.py::RelationsTestCase.test_bundled_aggregations. + bundle_aggregations=False, token_id=token_id, event_format=event_formatter, only_event_fields=only_fields, diff --git a/tests/rest/client/test_relations.py b/tests/rest/client/test_relations.py
index 55f4f0b1d0..c026d526ef 100644 --- a/tests/rest/client/test_relations.py +++ b/tests/rest/client/test_relations.py
@@ -577,11 +577,11 @@ class RelationsTestCase(unittest.HomeserverTestCase): assert_bundle(channel.json_body["event"]["unsigned"].get("m.relations")) # Request sync. - channel = self.make_request("GET", "/sync", access_token=self.user_token) - self.assertEquals(200, channel.code, channel.json_body) - room_timeline = channel.json_body["rooms"]["join"][self.room]["timeline"] - self.assertTrue(room_timeline["limited"]) - _find_and_assert_event(room_timeline["events"]) + # channel = self.make_request("GET", "/sync", access_token=self.user_token) + # self.assertEquals(200, channel.code, channel.json_body) + # room_timeline = channel.json_body["rooms"]["join"][self.room]["timeline"] + # self.assertTrue(room_timeline["limited"]) + # _find_and_assert_event(room_timeline["events"]) # Note that /relations is tested separately in test_aggregation_get_event_for_thread # since it needs different data configured.