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.39.0rc1' into develop
Browse files Browse the repository at this point in the history
Synapse 1.39.0rc1 (2021-07-20)
==============================

The Third-Party Event Rules module interface has been deprecated in favour of the generic module interface introduced in Synapse v1.37.0. Support for the old interface is planned to be removed in September 2021. See the [upgrade notes](https://matrix-org.github.io/synapse/latest/upgrade.html#upgrading-to-v1390) for more information.

Features
--------

- Add the ability to override the account validity feature with a module. ([\#9884](#9884))
- The spaces summary API now returns any joinable rooms, not only rooms which are world-readable. ([\#10298](#10298), [\#10305](#10305))
- Add a new version of the R30 phone-home metric, which removes a false impression of retention given by the old R30 metric. ([\#10332](#10332), [\#10427](#10427))
- Allow providing credentials to `http_proxy`. ([\#10360](#10360))

Bugfixes
--------

- Fix error while dropping locks on shutdown. Introduced in v1.38.0. ([\#10433](#10433))
- Add base starting insertion event when no chunk ID is specified in the historical batch send API. ([\#10250](#10250))
- Fix historical batch send endpoint (MSC2716) rejecting batches with messages from multiple senders. ([\#10276](#10276))
- Fix purging rooms that other homeservers are still sending events for. Contributed by @ilmari. ([\#10317](#10317))
- Fix errors during backfill caused by previously purged redaction events. Contributed by Andreas Rammhold (@andir). ([\#10343](#10343))
- Fix the user directory becoming broken (and noisy errors being logged) when knocking and room statistics are in use. ([\#10344](#10344))
- Fix newly added `synapse_federation_server_oldest_inbound_pdu_in_staging` prometheus metric to measure age rather than timestamp. ([\#10355](#10355))
- Fix PostgreSQL sometimes using table scans for queries against `state_groups_state` table, taking a long time and a large amount of IO. ([\#10359](#10359))
- Fix `make_room_admin` failing for users that have left a private room. ([\#10367](#10367))
- Fix a number of logged errors caused by remote servers being down. ([\#10400](#10400), [\#10414](#10414))
- Responses from `/make_{join,leave,knock}` no longer include signatures, which will turn out to be invalid after events are returned to `/send_{join,leave,knock}`. ([\#10404](#10404))

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

- Updated installation dependencies for newer macOS versions and ARM Macs. Contributed by Luke Walsh. ([\#9971](#9971))
- Simplify structure of room admin API. ([\#10313](#10313))
- Refresh the logcontext dev documentation. ([\#10353](#10353)), ([\#10337](#10337))
- Add delegation example for caddy in the reverse proxy documentation. Contributed by @moritzdietz. ([\#10368](#10368))
- Fix and clarify some links in `docs` and `contrib`. ([\#10370](#10370)), ([\#10322](#10322)), ([\#10399](#10399))
- Make deprecation notice of the spam checker doc more obvious. ([\#10395](#10395))
- Add instructions on installing Debian packages for release candidates. ([\#10396](#10396))

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

- Remove functionality associated with the unused `room_stats_historical` and `user_stats_historical` tables. Contributed by @xmunoz. ([\#9721](#9721))
- The third-party event rules module interface is deprecated in favour of the generic module interface introduced in Synapse v1.37.0. See the [upgrade notes](https://matrix-org.github.io/synapse/latest/upgrade.html#upgrading-to-v1390) for more information. ([\#10386](#10386))

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

- Convert `room_depth.min_depth` column to a `BIGINT`. ([\#10289](#10289))
- Add tests to characterise the current behaviour of R30 phone-home metrics. ([\#10315](#10315))
- Rebuild event context and auth when processing specific results from `ThirdPartyEventRules` modules. ([\#10316](#10316))
- Minor change to the code that populates `user_daily_visits`. ([\#10324](#10324))
- Re-enable Sytests that were disabled for the 1.37.1 release. ([\#10345](#10345), [\#10357](#10357))
- Run `pyupgrade` on the codebase. ([\#10347](#10347), [\#10348](#10348))
- Switch `application_services_txns.txn_id` database column to `BIGINT`. ([\#10349](#10349))
- Convert internal type variable syntax to reflect wider ecosystem use. ([\#10350](#10350), [\#10380](#10380), [\#10381](#10381), [\#10382](#10382), [\#10418](#10418))
- Make the Github Actions workflow configuration more efficient. ([\#10383](#10383))
- Add type hints to `get_{domain,localpart}_from_id`. ([\#10385](#10385))
- When building Debian packages for prerelease versions, set the Section accordingly. ([\#10391](#10391))
- Add type hints and comments to event auth code. ([\#10393](#10393))
- Stagger sending of presence update to remote servers, reducing CPU spikes caused by starting many connections to remote servers at once. ([\#10398](#10398))
- Remove unused `events_by_room` code (tech debt). ([\#10421](#10421))
- Add a github actions job which records success of other jobs. ([\#10430](#10430))
  • Loading branch information
anoadragon453 committed Jul 20, 2021
2 parents 69226c1 + e009d2e commit b181dc4
Show file tree
Hide file tree
Showing 55 changed files with 94 additions and 52 deletions.
69 changes: 69 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,72 @@
Synapse 1.39.0rc1 (2021-07-20)
==============================

The Third-Party Event Rules module interface has been deprecated in favour of the generic module interface introduced in Synapse v1.37.0. Support for the old interface is planned to be removed in September 2021. See the [upgrade notes](https://matrix-org.github.io/synapse/latest/upgrade.html#upgrading-to-v1390) for more information.

Features
--------

- Add the ability to override the account validity feature with a module. ([\#9884](https://github.com/matrix-org/synapse/issues/9884))
- The spaces summary API now returns any joinable rooms, not only rooms which are world-readable. ([\#10298](https://github.com/matrix-org/synapse/issues/10298), [\#10305](https://github.com/matrix-org/synapse/issues/10305))
- Add a new version of the R30 phone-home metric, which removes a false impression of retention given by the old R30 metric. ([\#10332](https://github.com/matrix-org/synapse/issues/10332), [\#10427](https://github.com/matrix-org/synapse/issues/10427))
- Allow providing credentials to `http_proxy`. ([\#10360](https://github.com/matrix-org/synapse/issues/10360))


Bugfixes
--------

- Fix error while dropping locks on shutdown. Introduced in v1.38.0. ([\#10433](https://github.com/matrix-org/synapse/issues/10433))
- Add base starting insertion event when no chunk ID is specified in the historical batch send API. ([\#10250](https://github.com/matrix-org/synapse/issues/10250))
- Fix historical batch send endpoint (MSC2716) rejecting batches with messages from multiple senders. ([\#10276](https://github.com/matrix-org/synapse/issues/10276))
- Fix purging rooms that other homeservers are still sending events for. Contributed by @ilmari. ([\#10317](https://github.com/matrix-org/synapse/issues/10317))
- Fix errors during backfill caused by previously purged redaction events. Contributed by Andreas Rammhold (@andir). ([\#10343](https://github.com/matrix-org/synapse/issues/10343))
- Fix the user directory becoming broken (and noisy errors being logged) when knocking and room statistics are in use. ([\#10344](https://github.com/matrix-org/synapse/issues/10344))
- Fix newly added `synapse_federation_server_oldest_inbound_pdu_in_staging` prometheus metric to measure age rather than timestamp. ([\#10355](https://github.com/matrix-org/synapse/issues/10355))
- Fix PostgreSQL sometimes using table scans for queries against `state_groups_state` table, taking a long time and a large amount of IO. ([\#10359](https://github.com/matrix-org/synapse/issues/10359))
- Fix `make_room_admin` failing for users that have left a private room. ([\#10367](https://github.com/matrix-org/synapse/issues/10367))
- Fix a number of logged errors caused by remote servers being down. ([\#10400](https://github.com/matrix-org/synapse/issues/10400), [\#10414](https://github.com/matrix-org/synapse/issues/10414))
- Responses from `/make_{join,leave,knock}` no longer include signatures, which will turn out to be invalid after events are returned to `/send_{join,leave,knock}`. ([\#10404](https://github.com/matrix-org/synapse/issues/10404))


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

- Updated installation dependencies for newer macOS versions and ARM Macs. Contributed by Luke Walsh. ([\#9971](https://github.com/matrix-org/synapse/issues/9971))
- Simplify structure of room admin API. ([\#10313](https://github.com/matrix-org/synapse/issues/10313))
- Refresh the logcontext dev documentation. ([\#10353](https://github.com/matrix-org/synapse/issues/10353)), ([\#10337](https://github.com/matrix-org/synapse/issues/10337))
- Add delegation example for caddy in the reverse proxy documentation. Contributed by @moritzdietz. ([\#10368](https://github.com/matrix-org/synapse/issues/10368))
- Fix and clarify some links in `docs` and `contrib`. ([\#10370](https://github.com/matrix-org/synapse/issues/10370)), ([\#10322](https://github.com/matrix-org/synapse/issues/10322)), ([\#10399](https://github.com/matrix-org/synapse/issues/10399))
- Make deprecation notice of the spam checker doc more obvious. ([\#10395](https://github.com/matrix-org/synapse/issues/10395))
- Add instructions on installing Debian packages for release candidates. ([\#10396](https://github.com/matrix-org/synapse/issues/10396))


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

- Remove functionality associated with the unused `room_stats_historical` and `user_stats_historical` tables. Contributed by @xmunoz. ([\#9721](https://github.com/matrix-org/synapse/issues/9721))
- The third-party event rules module interface is deprecated in favour of the generic module interface introduced in Synapse v1.37.0. See the [upgrade notes](https://matrix-org.github.io/synapse/latest/upgrade.html#upgrading-to-v1390) for more information. ([\#10386](https://github.com/matrix-org/synapse/issues/10386))


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

- Convert `room_depth.min_depth` column to a `BIGINT`. ([\#10289](https://github.com/matrix-org/synapse/issues/10289))
- Add tests to characterise the current behaviour of R30 phone-home metrics. ([\#10315](https://github.com/matrix-org/synapse/issues/10315))
- Rebuild event context and auth when processing specific results from `ThirdPartyEventRules` modules. ([\#10316](https://github.com/matrix-org/synapse/issues/10316))
- Minor change to the code that populates `user_daily_visits`. ([\#10324](https://github.com/matrix-org/synapse/issues/10324))
- Re-enable Sytests that were disabled for the 1.37.1 release. ([\#10345](https://github.com/matrix-org/synapse/issues/10345), [\#10357](https://github.com/matrix-org/synapse/issues/10357))
- Run `pyupgrade` on the codebase. ([\#10347](https://github.com/matrix-org/synapse/issues/10347), [\#10348](https://github.com/matrix-org/synapse/issues/10348))
- Switch `application_services_txns.txn_id` database column to `BIGINT`. ([\#10349](https://github.com/matrix-org/synapse/issues/10349))
- Convert internal type variable syntax to reflect wider ecosystem use. ([\#10350](https://github.com/matrix-org/synapse/issues/10350), [\#10380](https://github.com/matrix-org/synapse/issues/10380), [\#10381](https://github.com/matrix-org/synapse/issues/10381), [\#10382](https://github.com/matrix-org/synapse/issues/10382), [\#10418](https://github.com/matrix-org/synapse/issues/10418))
- Make the Github Actions workflow configuration more efficient. ([\#10383](https://github.com/matrix-org/synapse/issues/10383))
- Add type hints to `get_{domain,localpart}_from_id`. ([\#10385](https://github.com/matrix-org/synapse/issues/10385))
- When building Debian packages for prerelease versions, set the Section accordingly. ([\#10391](https://github.com/matrix-org/synapse/issues/10391))
- Add type hints and comments to event auth code. ([\#10393](https://github.com/matrix-org/synapse/issues/10393))
- Stagger sending of presence update to remote servers, reducing CPU spikes caused by starting many connections to remote servers at once. ([\#10398](https://github.com/matrix-org/synapse/issues/10398))
- Remove unused `events_by_room` code (tech debt). ([\#10421](https://github.com/matrix-org/synapse/issues/10421))
- Add a github actions job which records success of other jobs. ([\#10430](https://github.com/matrix-org/synapse/issues/10430))


Synapse 1.38.0 (2021-07-13)
===========================

Expand Down
1 change: 0 additions & 1 deletion changelog.d/10250.bugfix

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

6 changes: 6 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
matrix-synapse-py3 (1.39.0~rc1) stable; urgency=medium

* New synapse release 1.39.0rc1.

-- Synapse Packaging team <packages@matrix.org> Tue, 20 Jul 2021 14:28:34 +0100

matrix-synapse-py3 (1.38.0) stable; urgency=medium

* New synapse release 1.38.0.
Expand Down
2 changes: 1 addition & 1 deletion synapse/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
except ImportError:
pass

__version__ = "1.38.0"
__version__ = "1.39.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
6 changes: 5 additions & 1 deletion synapse/storage/databases/main/lock.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,11 @@ async def _on_shutdown(self) -> None:
"""Called when the server is shutting down"""
logger.info("Dropping held locks due to shutdown")

for (lock_name, lock_key), token in self._live_tokens.items():
# We need to take a copy of the tokens dict as dropping the locks will
# cause the dictionary to change.
tokens = dict(self._live_tokens)

for (lock_name, lock_key), token in tokens.items():
await self._drop_lock(lock_name, lock_key, token)

logger.info("Dropped locks due to shutdown")
Expand Down
13 changes: 13 additions & 0 deletions tests/storage/databases/main/test_lock.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,16 @@ def test_drop(self):

lock2 = self.get_success(self.store.try_acquire_lock("name", "key"))
self.assertIsNotNone(lock2)

def test_shutdown(self):
"""Test that shutting down Synapse releases the locks"""
# Acquire two locks
lock = self.get_success(self.store.try_acquire_lock("name", "key1"))
self.assertIsNotNone(lock)
lock2 = self.get_success(self.store.try_acquire_lock("name", "key2"))
self.assertIsNotNone(lock2)

# Now call the shutdown code
self.get_success(self.store._on_shutdown())

self.assertEqual(self.store._live_tokens, {})

0 comments on commit b181dc4

Please sign in to comment.