Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 05ea12a

Browse files
committed
Merge tag 'v1.49.2' into rav/msc2775/server_side
Synapse 1.49.2 (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. ([\#11583](#11583)) Internal Changes ---------------- - Work around a build problem on Debian Buster. ([\#11625](#11625))
2 parents d646fb0 + 6b6dcdc commit 05ea12a

File tree

7 files changed

+83
-12
lines changed

7 files changed

+83
-12
lines changed

CHANGES.md

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,46 @@
1-
Synapse 1.49.0rc1 (2021-12-07)
2-
==============================
1+
Synapse 1.49.2 (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+
Internal Changes
16+
----------------
17+
18+
- Work around a build problem on Debian Buster. ([\#11625](https://github.com/matrix-org/synapse/issues/11625))
19+
20+
21+
Synapse 1.49.1 (2021-12-21)
22+
===========================
23+
24+
Not released due to problems building the debian packages.
25+
26+
27+
Synapse 1.49.0 (2021-12-14)
28+
===========================
29+
30+
No significant changes since version 1.49.0rc1.
31+
32+
33+
Support for Ubuntu 21.04 ends next month on the 20th of January
34+
---------------------------------------------------------------
35+
36+
For users of Ubuntu 21.04 (Hirsute Hippo), please be aware that [upstream support for this version of Ubuntu will end next month][Ubuntu2104EOL].
37+
We will stop producing packages for Ubuntu 21.04 after upstream support ends.
38+
39+
[Ubuntu2104EOL]: https://lists.ubuntu.com/archives/ubuntu-announce/2021-December/000275.html
40+
41+
42+
The wiki has been migrated to the documentation website
43+
-------------------------------------------------------
344

445
We've decided to move the existing, somewhat stagnant pages from the GitHub wiki
546
to the [documentation website](https://matrix-org.github.io/synapse/latest/).
@@ -16,6 +57,9 @@ requests](https://github.com/matrix-org/synapse/pulls). Please visit [#synapse-d
1657
if you need help with the process!
1758

1859

60+
Synapse 1.49.0rc1 (2021-12-07)
61+
==============================
62+
1963
Features
2064
--------
2165

debian/changelog

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
matrix-synapse-py3 (1.49.2) stable; urgency=medium
2+
3+
* New synapse release 1.49.2.
4+
5+
-- Synapse Packaging team <[email protected]> Tue, 21 Dec 2021 17:31:03 +0000
6+
7+
matrix-synapse-py3 (1.49.1) stable; urgency=medium
8+
9+
* New synapse release 1.49.1.
10+
11+
-- Synapse Packaging team <[email protected]> Tue, 21 Dec 2021 11:07:30 +0000
12+
13+
matrix-synapse-py3 (1.49.0) stable; urgency=medium
14+
15+
* New synapse release 1.49.0.
16+
17+
-- Synapse Packaging team <[email protected]> Tue, 14 Dec 2021 12:39:46 +0000
18+
119
matrix-synapse-py3 (1.49.0~rc1) stable; urgency=medium
220

321
* New synapse release 1.49.0~rc1.

docs/deprecation_policy.md

Lines changed: 2 additions & 2 deletions
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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
except ImportError:
4848
pass
4949

50-
__version__ = "1.49.0rc1"
50+
__version__ = "1.49.2"
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/python_dependencies.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@
5050
REQUIREMENTS = [
5151
# we use the TYPE_CHECKER.redefine method added in jsonschema 3.0.0
5252
"jsonschema>=3.0.0",
53-
"frozendict>=1",
53+
# frozendict 2.1.2 is broken on Debian 10: https://github.com/Marco-Sulla/python-frozendict/issues/41
54+
"frozendict>=1,<2.1.2",
5455
"unpaddedbase64>=1.1.0",
5556
"canonicaljson>=1.4.0",
5657
# we use the type definitions added in signedjson 1.1.

synapse/rest/client/sync.py

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

tests/rest/client/test_relations.py

Lines changed: 5 additions & 5 deletions
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)