This release fixes a regression in v1.21.0 that prevented debian packages from being built.
It is otherwise identical to v1.21.0.
Synapse 1.21.0 (2020-10-12)
No significant changes since v1.21.0rc3.
As noted in v1.20.0, a future release will drop support for accessing Synapse's Admin API under the /_matrix/client/* endpoint prefixes. At that point, the Admin API will only be accessible under /_synapse/admin.
Synapse 1.21.0rc3 (2020-10-08)
Bugfixes
Fix duplication of events on high traffic servers, caused by PostgreSQL could not serialize access due to concurrent update errors. (#8456)
Internal Changes
Add Groovy Gorilla to the list of distributions we build .debs for. (#8475)
Synapse 1.21.0rc2 (2020-10-02)
Features
Convert additional templates from inline HTML to Jinja2 templates. (#8444)
Bugfixes
Fix a regression in v1.21.0rc1 which broke thumbnails of remote media. (#8438)
Do not expose the experimental uk.half-shot.msc2778.login.application_service flow in the login API, which caused a compatibility problem with Element iOS. (#8440)
Fix malformed log line in new federation "catch up" logic. (#8442)
Fix DB query on startup for negative streams which caused long start up times. Introduced in #8374. (#8447)
Synapse 1.21.0rc1 (2020-10-01)
Features
Require the user to confirm that their password should be reset after clicking the email confirmation link. (#8004)
Add an admin API GET /_synapse/admin/v1/event_reports to read entries of table event_reports. Contributed by @dklimpel. (#8217)
Consolidate the SSO error template across all configuration. (#8248, #8405)
Add a configuration option to specify a whitelist of domains that a user can be redirected to after validating their email or phone number. (#8275, #8417)
Add experimental support for sharding event persister. (#8294, #8387, #8396, #8419)
Add the room topic and avatar to the room details admin API. (#8305)
Add an admin API for querying rooms where a user is a member. Contributed by @dklimpel. (#8306)
Add uk.half-shot.msc2778.login.application_service login type to allow appservices to login. (#8320)
Add a configuration option that allows existing users to log in with OpenID Connect. Contributed by @BBBSnowball and @OmmyZhang. (#8345)
Add prometheus metrics for replication requests. (#8406)
Support passing additional single sign-on parameters to the client. (#8413)
Add experimental reporting of metrics on expensive rooms for state-resolution. (#8420)
Add experimental prometheus metric to track numbers of "large" rooms for state resolutiom. (#8425)
Add prometheus metrics to track federation delays. (#8430)
Bugfixes
Fix a bug in the media repository where remote thumbnails with the same size but different crop methods would overwrite each other. Contributed by @deepbluev7. (#7124)
Fix inconsistent handling of non-existent push rules, and stop tracking the enabled state of removed push rules. (#7796)
Fix a longstanding bug when storing a media file with an empty upload_name. (#7905)
Fix messages not being sent over federation until an event is sent into the same room. (#8230, #8247, #8258, #8272, #8322)
Fix a longstanding bug where files that could not be thumbnailed would result in an Internal Server Error. (#8236, #8435)
Upgrade minimum version of canonicaljson to version 1.4.0, to fix an unicode encoding issue. (#8262)
Fix longstanding bug which could lead to incomplete database upgrades on SQLite. (#8265)
Fix stack overflow when stderr is redirected to the logging system, and the logging system encounters an error. (#8268)
Fix a bug which cause the logging system to report errors, if DEBUG was enabled and no context filter was applied. (#8278)
Fix edge case where push could get delayed for a user until a later event was pushed. (#8287)
Fix fetching malformed events from remote servers. (#8324)
Fix UnboundLocalError from occurring when appservices send a malformed register request. (#8329)
Don't send push notifications to expired user accounts. (#8353)
Fix a regression in v1.19.0 with reactivating users through the admin API. (#8362)
Fix a bug where during device registration the length of the device name wasn't limited. (#8364)
Include guest_access in the fields that are checked for null bytes when updating room_stats_state. Broke in v1.7.2. (#8373)
Fix theoretical race condition where events are not sent down /sync if the synchrotron worker is restarted without restarting other workers. (#8374)
Fix a bug which could cause errors in rooms with malformed membership events, on servers using sqlite. (#8385)
Fix "Re-starting finished log context" warning when receiving an event we already had over federation. (#8398)
Fix incorrect handling of timeouts on outgoing HTTP requests. (#8400)
Fix a regression in v1.20.0 in the synapse_port_db script regarding the ui_auth_sessions_ips table. (#8410)
Remove unnecessary 3PID registration check when resetting password via an email address. Bug introduced in v0.34.0rc2. (#8414)
Improved Documentation
Add /_synapse/client to the reverse proxy documentation. (#8227)
Add note to the reverse proxy settings documentation about disabling Apache's mod_security2. Contributed by Julian Fietkau (@jfietkau). (#8375)
Improve description of server_name config option in homserver.yaml. (#8415)
Deprecations and Removals
Drop support for prometheus_client older than 0.4.0. (#8426)
Internal Changes
Fix tests on distros which disable TLSv1.0. Contributed by @danc86. (#8208)
Simplify the distributor code to avoid unnecessary work. (#8216)
Remove the populate_stats_process_rooms_2 background job and restore functionality to populate_stats_process_rooms. (#8243)
Clean up type hints for PaginationConfig. (#8250, #8282)
Track the latest event for every destination and room for catch-up after federation outage. (#8256)
Fix non-user visible bug in implementation of MultiWriterIdGenerator.get_current_token_for_writer. (#8257)
Switch to the JSON implementation from the standard library. (#8259)
Add type hints to synapse.util.async_helpers. (#8260)
Simplify tests that mock asynchronous functions. (#8261)
Add type hints to StreamToken and RoomStreamToken classes. (#8279)
Change StreamToken.room_key to be a RoomStreamToken instance. (#8281)
Refactor notifier code to correctly use the max event stream position. (#8288)