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

Commit

Permalink
Merge tag 'v1.42.0rc1' into develop
Browse files Browse the repository at this point in the history
Synapse 1.42.0rc1 (2021-09-01)
==============================

Server administrators are reminded to read [the upgrade notes](docs/upgrade.md#upgrading-to-v1420).

Features
--------

- Add support for [MSC3231](matrix-org/matrix-spec-proposals#3231): Token authenticated registration. Users can be required to submit a token during registration to authenticate themselves. Contributed by Callum Brown. ([\#10142](#10142))
- Add support for [MSC3283](matrix-org/matrix-spec-proposals#3283): Expose `enable_set_displayname` in capabilities. ([\#10452](#10452))
- Port the `PresenceRouter` module interface to the new generic interface. ([\#10524](#10524))
- Add pagination to the spaces summary based on updates to [MSC2946](matrix-org/matrix-spec-proposals#2946). ([\#10613](#10613), [\#10725](#10725))

Bugfixes
--------

- Validate new `m.room.power_levels` events. Contributed by @aaronraimist. ([\#10232](#10232))
- Display an error on User-Interactive Authentication fallback pages when authentication fails. Contributed by Callum Brown. ([\#10561](#10561))
- Remove pushers when deleting an e-mail address from an account. Pushers for old unlinked emails will also be deleted. ([\#10581](#10581), [\#10734](#10734))
- Reject Client-Server `/keys/query` requests which provide `device_ids` incorrectly. ([\#10593](#10593))
- Rooms with unsupported room versions are no longer returned via `/sync`. ([\#10644](#10644))
- Enforce the maximum length for per-room display names and avatar URLs. ([\#10654](#10654))
- Fix a bug which caused the `synapse_user_logins_total` Prometheus metric not to be correctly initialised on restart. ([\#10677](#10677))
- Improve `ServerNoticeServlet` to avoid duplicate requests and add unit tests. ([\#10679](#10679))
- Fix long-standing issue which caused an error when a thumbnail is requested and there are multiple thumbnails with the same quality rating. ([\#10684](#10684))
- Fix a regression introduced in v1.41.0 which affected the performance of concurrent fetches of large sets of events, in extreme cases causing the process to hang. ([\#10703](#10703))
- Fix a regression introduced in Synapse 1.41 which broke email transmission on Systems using older versions of the Twisted library. ([\#10713](#10713))

Improved Documentation
----------------------

- Add documentation on how to connect Django with Synapse using OpenID Connect and django-oauth-toolkit. Contributed by @HugoDelval. ([\#10192](#10192))
- Advertise https://matrix-org.github.io/synapse documentation in the `README` and `CONTRIBUTING` files. ([\#10595](#10595))
- Fix some of the titles not rendering in the OpenID Connect documentation. ([\#10639](#10639))
- Minor clarifications to the documentation for reverse proxies. ([\#10708](#10708))
- Remove table of contents from the top of installation and contributing documentation pages. ([\#10711](#10711))

Deprecations and Removals
-------------------------

- Remove deprecated Shutdown Room and Purge Room Admin API. ([\#8830](#8830))

Internal Changes
----------------

- Improve type hints for the proxy agent and SRV resolver modules. Contributed by @dklimpel. ([\#10608](#10608))
- Clean up some of the federation event authentication code for clarity. ([\#10614](#10614), [\#10615](#10615), [\#10624](#10624), [\#10640](#10640))
- Add a comment asking developers to leave a reason when bumping the database schema version. ([\#10621](#10621))
- Remove not needed database updates in modify user admin API. ([\#10627](#10627))
- Convert room member storage tuples to `attrs` classes. ([\#10629](#10629), [\#10642](#10642))
- Use auto-attribs for the attrs classes used in sync. ([\#10630](#10630))
- Make `backfill` and `get_missing_events` use the same codepath. ([\#10645](#10645))
- Improve the performance of the `/hierarchy` API (from [MSC2946](matrix-org/matrix-spec-proposals#2946)) by caching responses received over federation. ([\#10647](#10647))
- Run a nightly CI build against Twisted trunk. ([\#10651](#10651), [\#10672](#10672))
- Do not print out stack traces for network errors when fetching data over federation. ([\#10662](#10662))
- Simplify tests for device admin rest API. ([\#10664](#10664))
- Add missing type hints to REST servlets. ([\#10665](#10665), [\#10666](#10666), [\#10674](#10674))
- Flatten the `tests.synapse.rests` package by moving the contents of `v1` and `v2_alpha` into the parent. ([\#10667](#10667))
- Update `complement.sh` to rebuild the base Docker image when run with workers. ([\#10686](#10686))
- Split the event-processing methods in `FederationHandler` into a separate `FederationEventHandler`. ([\#10692](#10692))
- Remove unused `compare_digest` function. ([\#10706](#10706))
  • Loading branch information
reivilibre committed Sep 1, 2021
2 parents d906938 + c6e103c commit e059094
Show file tree
Hide file tree
Showing 52 changed files with 123 additions and 52 deletions.
68 changes: 67 additions & 1 deletion CHANGES.md
@@ -1,4 +1,70 @@
Users will stop receiving message updates via email for addresses that were previously linked to their account
Synapse 1.42.0rc1 (2021-09-01)
==============================

Server administrators are reminded to read [the upgrade notes](docs/upgrade.md#upgrading-to-v1420).


Features
--------

- Add support for [MSC3231](https://github.com/matrix-org/matrix-doc/pull/3231): Token authenticated registration. Users can be required to submit a token during registration to authenticate themselves. Contributed by Callum Brown. ([\#10142](https://github.com/matrix-org/synapse/issues/10142))
- Add support for [MSC3283](https://github.com/matrix-org/matrix-doc/pull/3283): Expose `enable_set_displayname` in capabilities. ([\#10452](https://github.com/matrix-org/synapse/issues/10452))
- Port the `PresenceRouter` module interface to the new generic interface. ([\#10524](https://github.com/matrix-org/synapse/issues/10524))
- Add pagination to the spaces summary based on updates to [MSC2946](https://github.com/matrix-org/matrix-doc/pull/2946). ([\#10613](https://github.com/matrix-org/synapse/issues/10613), [\#10725](https://github.com/matrix-org/synapse/issues/10725))


Bugfixes
--------

- Validate new `m.room.power_levels` events. Contributed by @aaronraimist. ([\#10232](https://github.com/matrix-org/synapse/issues/10232))
- Display an error on User-Interactive Authentication fallback pages when authentication fails. Contributed by Callum Brown. ([\#10561](https://github.com/matrix-org/synapse/issues/10561))
- Remove pushers when deleting an e-mail address from an account. Pushers for old unlinked emails will also be deleted. ([\#10581](https://github.com/matrix-org/synapse/issues/10581), [\#10734](https://github.com/matrix-org/synapse/issues/10734))
- Reject Client-Server `/keys/query` requests which provide `device_ids` incorrectly. ([\#10593](https://github.com/matrix-org/synapse/issues/10593))
- Rooms with unsupported room versions are no longer returned via `/sync`. ([\#10644](https://github.com/matrix-org/synapse/issues/10644))
- Enforce the maximum length for per-room display names and avatar URLs. ([\#10654](https://github.com/matrix-org/synapse/issues/10654))
- Fix a bug which caused the `synapse_user_logins_total` Prometheus metric not to be correctly initialised on restart. ([\#10677](https://github.com/matrix-org/synapse/issues/10677))
- Improve `ServerNoticeServlet` to avoid duplicate requests and add unit tests. ([\#10679](https://github.com/matrix-org/synapse/issues/10679))
- Fix long-standing issue which caused an error when a thumbnail is requested and there are multiple thumbnails with the same quality rating. ([\#10684](https://github.com/matrix-org/synapse/issues/10684))
- Fix a regression introduced in v1.41.0 which affected the performance of concurrent fetches of large sets of events, in extreme cases causing the process to hang. ([\#10703](https://github.com/matrix-org/synapse/issues/10703))
- Fix a regression introduced in Synapse 1.41 which broke email transmission on Systems using older versions of the Twisted library. ([\#10713](https://github.com/matrix-org/synapse/issues/10713))


Improved Documentation
----------------------

- Add documentation on how to connect Django with Synapse using OpenID Connect and django-oauth-toolkit. Contributed by @HugoDelval. ([\#10192](https://github.com/matrix-org/synapse/issues/10192))
- Advertise https://matrix-org.github.io/synapse documentation in the `README` and `CONTRIBUTING` files. ([\#10595](https://github.com/matrix-org/synapse/issues/10595))
- Fix some of the titles not rendering in the OpenID Connect documentation. ([\#10639](https://github.com/matrix-org/synapse/issues/10639))
- Minor clarifications to the documentation for reverse proxies. ([\#10708](https://github.com/matrix-org/synapse/issues/10708))
- Remove table of contents from the top of installation and contributing documentation pages. ([\#10711](https://github.com/matrix-org/synapse/issues/10711))


Deprecations and Removals
-------------------------

- Remove deprecated Shutdown Room and Purge Room Admin API. ([\#8830](https://github.com/matrix-org/synapse/issues/8830))


Internal Changes
----------------

- Improve type hints for the proxy agent and SRV resolver modules. Contributed by @dklimpel. ([\#10608](https://github.com/matrix-org/synapse/issues/10608))
- Clean up some of the federation event authentication code for clarity. ([\#10614](https://github.com/matrix-org/synapse/issues/10614), [\#10615](https://github.com/matrix-org/synapse/issues/10615), [\#10624](https://github.com/matrix-org/synapse/issues/10624), [\#10640](https://github.com/matrix-org/synapse/issues/10640))
- Add a comment asking developers to leave a reason when bumping the database schema version. ([\#10621](https://github.com/matrix-org/synapse/issues/10621))
- Remove not needed database updates in modify user admin API. ([\#10627](https://github.com/matrix-org/synapse/issues/10627))
- Convert room member storage tuples to `attrs` classes. ([\#10629](https://github.com/matrix-org/synapse/issues/10629), [\#10642](https://github.com/matrix-org/synapse/issues/10642))
- Use auto-attribs for the attrs classes used in sync. ([\#10630](https://github.com/matrix-org/synapse/issues/10630))
- Make `backfill` and `get_missing_events` use the same codepath. ([\#10645](https://github.com/matrix-org/synapse/issues/10645))
- Improve the performance of the `/hierarchy` API (from [MSC2946](https://github.com/matrix-org/matrix-doc/pull/2946)) by caching responses received over federation. ([\#10647](https://github.com/matrix-org/synapse/issues/10647))
- Run a nightly CI build against Twisted trunk. ([\#10651](https://github.com/matrix-org/synapse/issues/10651), [\#10672](https://github.com/matrix-org/synapse/issues/10672))
- Do not print out stack traces for network errors when fetching data over federation. ([\#10662](https://github.com/matrix-org/synapse/issues/10662))
- Simplify tests for device admin rest API. ([\#10664](https://github.com/matrix-org/synapse/issues/10664))
- Add missing type hints to REST servlets. ([\#10665](https://github.com/matrix-org/synapse/issues/10665), [\#10666](https://github.com/matrix-org/synapse/issues/10666), [\#10674](https://github.com/matrix-org/synapse/issues/10674))
- Flatten the `tests.synapse.rests` package by moving the contents of `v1` and `v2_alpha` into the parent. ([\#10667](https://github.com/matrix-org/synapse/issues/10667))
- Update `complement.sh` to rebuild the base Docker image when run with workers. ([\#10686](https://github.com/matrix-org/synapse/issues/10686))
- Split the event-processing methods in `FederationHandler` into a separate `FederationEventHandler`. ([\#10692](https://github.com/matrix-org/synapse/issues/10692))
- Remove unused `compare_digest` function. ([\#10706](https://github.com/matrix-org/synapse/issues/10706))


Synapse 1.41.1 (2021-08-31)
===========================
Expand Down
1 change: 0 additions & 1 deletion changelog.d/10142.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10192.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10232.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10452.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10524.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10561.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10581.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10593.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10595.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10608.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10613.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10614.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10615.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10621.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10624.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10627.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10629.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10630.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10639.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10640.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10642.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10644.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10645.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10647.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10651.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10654.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10662.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10664.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10665.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10666.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10667.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10672.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10674.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10677.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10679.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10684.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10686.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10692.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10703.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10706.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10708.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10711.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10713.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10723.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/10725.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8830.removal

This file was deleted.

6 changes: 6 additions & 0 deletions debian/changelog
@@ -1,3 +1,9 @@
matrix-synapse-py3 (1.42.0~rc1) stable; urgency=medium

* New synapse release 1.42.0rc1.

-- Synapse Packaging team <packages@matrix.org> Wed, 01 Sep 2021 11:37:48 +0100

matrix-synapse-py3 (1.41.1) stable; urgency=high

* New synapse release 1.41.1.
Expand Down
6 changes: 3 additions & 3 deletions docs/upgrade.md
Expand Up @@ -85,7 +85,7 @@ process, for example:
dpkg -i matrix-synapse-py3_1.3.0+stretch1_amd64.deb
```

# Upgrading to v1.xx.0
# Upgrading to v1.42.0

## Removal of old Room Admin API

Expand All @@ -107,12 +107,12 @@ This may affect you if you make use of custom HTML templates for the
The template is now provided an `error` variable if the authentication
process failed. See the default templates linked above for an example.

# Upgrading to v1.42.0

## Removal of out-of-date email pushers

Users will stop receiving message updates via email for addresses that were
once, but not still, linked to their account.


# Upgrading to v1.41.0

## Add support for routing outbound HTTP requests via a proxy for federation
Expand Down
2 changes: 1 addition & 1 deletion synapse/__init__.py
Expand Up @@ -47,7 +47,7 @@
except ImportError:
pass

__version__ = "1.41.1"
__version__ = "1.42.0rc1"

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
Expand Down
3 changes: 2 additions & 1 deletion synapse/storage/databases/main/pusher.py
Expand Up @@ -430,10 +430,11 @@ def _delete_pushers(txn) -> int:
"""

txn.execute(sql, (last_pusher, batch_size))
rows = txn.fetchall()

last = None
num_deleted = 0
for row in txn:
for row in rows:
last = row[0]
num_deleted += 1
self.db_pool.simple_delete_txn(
Expand Down
44 changes: 44 additions & 0 deletions tests/push/test_email.py
Expand Up @@ -379,6 +379,50 @@ def test_no_email_sent_after_removed(self):
pushers = list(pushers)
self.assertEqual(len(pushers), 0)

def test_remove_unlinked_pushers_background_job(self):
"""Checks that all existing pushers associated with unlinked email addresses are removed
upon running the remove_deleted_email_pushers background update.
"""
# disassociate the user's email address manually (without deleting the pusher).
# This resembles the old behaviour, which the background update below is intended
# to clean up.
self.get_success(
self.hs.get_datastore().user_delete_threepid(
self.user_id, "email", "a@example.com"
)
)

# Run the "remove_deleted_email_pushers" background job
self.get_success(
self.hs.get_datastore().db_pool.simple_insert(
table="background_updates",
values={
"update_name": "remove_deleted_email_pushers",
"progress_json": "{}",
"depends_on": None,
},
)
)

# ... and tell the DataStore that it hasn't finished all updates yet
self.hs.get_datastore().db_pool.updates._all_done = False

# Now let's actually drive the updates to completion
while not self.get_success(
self.hs.get_datastore().db_pool.updates.has_completed_background_updates()
):
self.get_success(
self.hs.get_datastore().db_pool.updates.do_next_background_update(100),
by=0.1,
)

# Check that all pushers with unlinked addresses were deleted
pushers = self.get_success(
self.hs.get_datastore().get_pushers_by({"user_name": self.user_id})
)
pushers = list(pushers)
self.assertEqual(len(pushers), 0)

def _check_for_mail(self) -> Tuple[Sequence, Dict]:
"""
Assert that synapse sent off exactly one email notification.
Expand Down

0 comments on commit e059094

Please sign in to comment.