diff options
author | Richard van der Hoff <richard@matrix.org> | 2021-12-20 16:34:01 +0000 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2021-12-20 16:34:01 +0000 |
commit | 8e4083e2f62513c03c97085bb1f42e958980a8fc (patch) | |
tree | 57a00a31271d1e16e51dd6998799f18f0b7f03b9 | |
parent | Return JSON errors for unknown resources under /matrix/client. (#11602) (diff) | |
parent | Disable aggregation bundling on `/sync` responses (#11583) (diff) | |
download | synapse-8e4083e2f62513c03c97085bb1f42e958980a8fc.tar.xz |
Merge remote-tracking branch 'origin/release-v1.49' into develop
-rw-r--r-- | changelog.d/11583.bugfix | 1 | ||||
-rw-r--r-- | synapse/rest/client/sync.py | 10 | ||||
-rw-r--r-- | tests/rest/client/test_relations.py | 10 |
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. |