Merge branch 'release-v1.49'

This commit is contained in:
Richard van der Hoff 2021-12-21 18:12:18 +00:00
commit 9ec46d6231
7 changed files with 57 additions and 10 deletions

View file

@ -1,3 +1,29 @@
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](https://github.com/matrix-org/synapse/issues/11583))
Internal Changes
----------------
- Work around a build problem on Debian Buster. ([\#11625](https://github.com/matrix-org/synapse/issues/11625))
Synapse 1.49.1 (2021-12-21)
===========================
Not released due to problems building the debian packages.
Synapse 1.49.0 (2021-12-14) Synapse 1.49.0 (2021-12-14)
=========================== ===========================

12
debian/changelog vendored
View file

@ -1,3 +1,15 @@
matrix-synapse-py3 (1.49.2) stable; urgency=medium
* New synapse release 1.49.2.
-- Synapse Packaging team <packages@matrix.org> Tue, 21 Dec 2021 17:31:03 +0000
matrix-synapse-py3 (1.49.1) stable; urgency=medium
* New synapse release 1.49.1.
-- Synapse Packaging team <packages@matrix.org> Tue, 21 Dec 2021 11:07:30 +0000
matrix-synapse-py3 (1.49.0) stable; urgency=medium matrix-synapse-py3 (1.49.0) stable; urgency=medium
* New synapse release 1.49.0. * New synapse release 1.49.0.

View file

@ -14,8 +14,8 @@ i.e. when a version reaches End of Life Synapse will withdraw support for that
version in future releases. version in future releases.
Details on the upstream support life cycles for Python and PostgreSQL are Details on the upstream support life cycles for Python and PostgreSQL are
documented at https://endoflife.date/python and documented at [https://endoflife.date/python](https://endoflife.date/python) and
https://endoflife.date/postgresql. [https://endoflife.date/postgresql](https://endoflife.date/postgresql).
Context Context

View file

@ -47,7 +47,7 @@ try:
except ImportError: except ImportError:
pass pass
__version__ = "1.49.0" __version__ = "1.49.2"
if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)): if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
# We import here so that we don't have to install a bunch of deps when # We import here so that we don't have to install a bunch of deps when

View file

@ -50,7 +50,8 @@ logger = logging.getLogger(__name__)
REQUIREMENTS = [ REQUIREMENTS = [
# we use the TYPE_CHECKER.redefine method added in jsonschema 3.0.0 # we use the TYPE_CHECKER.redefine method added in jsonschema 3.0.0
"jsonschema>=3.0.0", "jsonschema>=3.0.0",
"frozendict>=1", # frozendict 2.1.2 is broken on Debian 10: https://github.com/Marco-Sulla/python-frozendict/issues/41
"frozendict>=1,<2.1.2",
"unpaddedbase64>=1.1.0", "unpaddedbase64>=1.1.0",
"canonicaljson>=1.4.0", "canonicaljson>=1.4.0",
# we use the type definitions added in signedjson 1.1. # we use the type definitions added in signedjson 1.1.

View file

@ -522,7 +522,15 @@ class SyncRestServlet(RestServlet):
time_now=time_now, time_now=time_now,
# Don't bother to bundle aggregations if the timeline is unlimited, # Don't bother to bundle aggregations if the timeline is unlimited,
# as clients will have all the necessary information. # 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, token_id=token_id,
event_format=event_formatter, event_format=event_formatter,
only_event_fields=only_fields, only_event_fields=only_fields,

View file

@ -574,11 +574,11 @@ class RelationsTestCase(unittest.HomeserverTestCase):
assert_bundle(channel.json_body["event"]["unsigned"].get("m.relations")) assert_bundle(channel.json_body["event"]["unsigned"].get("m.relations"))
# Request sync. # Request sync.
channel = self.make_request("GET", "/sync", access_token=self.user_token) # channel = self.make_request("GET", "/sync", access_token=self.user_token)
self.assertEquals(200, channel.code, channel.json_body) # self.assertEquals(200, channel.code, channel.json_body)
room_timeline = channel.json_body["rooms"]["join"][self.room]["timeline"] # room_timeline = channel.json_body["rooms"]["join"][self.room]["timeline"]
self.assertTrue(room_timeline["limited"]) # self.assertTrue(room_timeline["limited"])
_find_and_assert_event(room_timeline["events"]) # _find_and_assert_event(room_timeline["events"])
# Note that /relations is tested separately in test_aggregation_get_event_for_thread # Note that /relations is tested separately in test_aggregation_get_event_for_thread
# since it needs different data configured. # since it needs different data configured.