Skip to content

Commit bf82012

Browse files
committed
Merge tag 'v1.49.1'
Synapse 1.49.1 (2021-12-21) =========================== This release fixes a regression introduced in Synapse 1.49.0 which could cause `/sync` requests to take significantly longer. This would particularly affect "initial" syncs for users participating in a large number of rooms, and in extreme cases, could make it impossible for such users to log in on a new client. **Note:** in line with our [deprecation policy](https://matrix-org.github.io/synapse/latest/deprecation_policy.html) for platform dependencies, this will be the last release to support Python 3.6 and PostgreSQL 9.6, both of which have now reached upstream end-of-life. Synapse will require Python 3.7+ and PostgreSQL 10. **Note:** We will also stop producing packages for Ubuntu 18.04 (Bionic Beaver) after this release, as it uses Python 3.6. Bugfixes -------- - Fix a performance regression in `/sync` handling, introduced in 1.49.0. ([\matrix-org#11583](matrix-org#11583))
2 parents 1da9c7c + 57ca8ab commit bf82012

File tree

6 files changed

+38
-9
lines changed

6 files changed

+38
-9
lines changed

CHANGES.md

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
Synapse 1.49.1 (2021-12-21)
2+
===========================
3+
4+
This release fixes a regression introduced in Synapse 1.49.0 which could cause `/sync` requests to take significantly longer. This would particularly affect "initial" syncs for users participating in a large number of rooms, and in extreme cases, could make it impossible for such users to log in on a new client.
5+
6+
**Note:** in line with our [deprecation policy](https://matrix-org.github.io/synapse/latest/deprecation_policy.html) for platform dependencies, this will be the last release to support Python 3.6 and PostgreSQL 9.6, both of which have now reached upstream end-of-life. Synapse will require Python 3.7+ and PostgreSQL 10.
7+
8+
**Note:** We will also stop producing packages for Ubuntu 18.04 (Bionic Beaver) after this release, as it uses Python 3.6.
9+
10+
Bugfixes
11+
--------
12+
13+
- Fix a performance regression in `/sync` handling, introduced in 1.49.0. ([\#11583](https://github.com/matrix-org/synapse/issues/11583))
14+
15+
116
Synapse 1.49.0 (2021-12-14)
217
===========================
318

debian/changelog

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
matrix-synapse-py3 (1.49.1) stable; urgency=medium
2+
3+
* New synapse release 1.49.1.
4+
5+
-- Synapse Packaging team <[email protected]> Tue, 21 Dec 2021 11:07:30 +0000
6+
17
matrix-synapse-py3 (1.49.0) stable; urgency=medium
28

39
* New synapse release 1.49.0.

docs/deprecation_policy.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ i.e. when a version reaches End of Life Synapse will withdraw support for that
1414
version in future releases.
1515

1616
Details on the upstream support life cycles for Python and PostgreSQL are
17-
documented at https://endoflife.date/python and
18-
https://endoflife.date/postgresql.
17+
documented at [https://endoflife.date/python](https://endoflife.date/python) and
18+
[https://endoflife.date/postgresql](https://endoflife.date/postgresql).
1919

2020

2121
Context

synapse/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
except ImportError:
4848
pass
4949

50-
__version__ = "1.49.0"
50+
__version__ = "1.49.1"
5151

5252
if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
5353
# We import here so that we don't have to install a bunch of deps when

synapse/rest/client/sync.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,15 @@ def serialize(events: Iterable[EventBase]) -> Awaitable[List[JsonDict]]:
522522
time_now=time_now,
523523
# Don't bother to bundle aggregations if the timeline is unlimited,
524524
# as clients will have all the necessary information.
525-
bundle_aggregations=room.timeline.limited,
525+
# bundle_aggregations=room.timeline.limited,
526+
#
527+
# richvdh 2021-12-15: disable this temporarily as it has too high an
528+
# overhead for initialsyncs. We need to figure out a way that the
529+
# bundling can be done *before* the events are stored in the
530+
# SyncResponseCache so that this part can be synchronous.
531+
#
532+
# Ensure to re-enable the test at tests/rest/client/test_relations.py::RelationsTestCase.test_bundled_aggregations.
533+
bundle_aggregations=False,
526534
token_id=token_id,
527535
event_format=event_formatter,
528536
only_event_fields=only_fields,

tests/rest/client/test_relations.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -574,11 +574,11 @@ def _find_and_assert_event(events):
574574
assert_bundle(channel.json_body["event"]["unsigned"].get("m.relations"))
575575

576576
# Request sync.
577-
channel = self.make_request("GET", "/sync", access_token=self.user_token)
578-
self.assertEquals(200, channel.code, channel.json_body)
579-
room_timeline = channel.json_body["rooms"]["join"][self.room]["timeline"]
580-
self.assertTrue(room_timeline["limited"])
581-
_find_and_assert_event(room_timeline["events"])
577+
# channel = self.make_request("GET", "/sync", access_token=self.user_token)
578+
# self.assertEquals(200, channel.code, channel.json_body)
579+
# room_timeline = channel.json_body["rooms"]["join"][self.room]["timeline"]
580+
# self.assertTrue(room_timeline["limited"])
581+
# _find_and_assert_event(room_timeline["events"])
582582

583583
# Note that /relations is tested separately in test_aggregation_get_event_for_thread
584584
# since it needs different data configured.

0 commit comments

Comments
 (0)