From 96312536f28ef73c61f9e82b34d35255cd4fa84e Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Mon, 7 Sep 2020 13:04:10 +0100 Subject: [PATCH 1/7] Refuse to upgrade database on worker processes (#8266) --- changelog.d/8266.misc | 1 + synapse/storage/prepare_database.py | 78 ++++++++++++++++++++++------- 2 files changed, 62 insertions(+), 17 deletions(-) create mode 100644 changelog.d/8266.misc diff --git a/changelog.d/8266.misc b/changelog.d/8266.misc new file mode 100644 index 000000000000..e7c899bea882 --- /dev/null +++ b/changelog.d/8266.misc @@ -0,0 +1 @@ +Do not attempt to upgrade upgrade database schema on worker processes. diff --git a/synapse/storage/prepare_database.py b/synapse/storage/prepare_database.py index 964d8d9eb876..93dca96476b2 100644 --- a/synapse/storage/prepare_database.py +++ b/synapse/storage/prepare_database.py @@ -47,6 +47,22 @@ class UpgradeDatabaseException(PrepareDatabaseException): pass +OUTDATED_SCHEMA_ON_WORKER_ERROR = ( + "Expected database schema version %i but got %i: run the main synapse process to " + "upgrade the database schema before starting worker processes." +) + +EMPTY_DATABASE_ON_WORKER_ERROR = ( + "Uninitialised database: run the main synapse process to prepare the database " + "schema before starting worker processes." +) + +UNAPPLIED_DELTA_ON_WORKER_ERROR = ( + "Database schema delta %s has not been applied: run the main synapse process to " + "upgrade the database schema before starting worker processes." +) + + def prepare_database(db_conn, database_engine, config, databases=["main", "state"]): """Prepares a physical database for usage. Will either create all necessary tables or upgrade from an older schema version. @@ -71,25 +87,35 @@ def prepare_database(db_conn, database_engine, config, databases=["main", "state if version_info: user_version, delta_files, upgraded = version_info + # config should only be None when we are preparing an in-memory SQLite db, + # which should be empty. if config is None: - if user_version != SCHEMA_VERSION: - # If we don't pass in a config file then we are expecting to - # have already upgraded the DB. - raise UpgradeDatabaseException( - "Expected database schema version %i but got %i" - % (SCHEMA_VERSION, user_version) - ) - else: - _upgrade_existing_database( - cur, - user_version, - delta_files, - upgraded, - database_engine, - config, - databases=databases, + raise ValueError( + "config==None in prepare_database, but databse is not empty" ) + + # if it's a worker app, refuse to upgrade the database, to avoid multiple + # workers doing it at once. + if config.worker_app is not None and user_version != SCHEMA_VERSION: + raise UpgradeDatabaseException( + OUTDATED_SCHEMA_ON_WORKER_ERROR % (SCHEMA_VERSION, user_version) + ) + + _upgrade_existing_database( + cur, + user_version, + delta_files, + upgraded, + database_engine, + config, + databases=databases, + ) else: + # if it's a worker app, refuse to upgrade the database, to avoid multiple + # workers doing it at once. + if config and config.worker_app is not None: + raise UpgradeDatabaseException(EMPTY_DATABASE_ON_WORKER_ERROR) + _setup_new_database(cur, database_engine, databases=databases) # check if any of our configured dynamic modules want a database @@ -295,6 +321,8 @@ def _upgrade_existing_database( else: assert config + is_worker = config and config.worker_app is not None + if current_version > SCHEMA_VERSION: raise ValueError( "Cannot use this database as it is too " @@ -322,7 +350,7 @@ def _upgrade_existing_database( specific_engine_extensions = (".sqlite", ".postgres") for v in range(start_ver, SCHEMA_VERSION + 1): - logger.info("Upgrading schema to v%d", v) + logger.info("Applying schema deltas for v%d", v) # We need to search both the global and per data store schema # directories for schema updates. @@ -382,9 +410,15 @@ def _upgrade_existing_database( continue root_name, ext = os.path.splitext(file_name) + if ext == ".py": # This is a python upgrade module. We need to import into some # package and then execute its `run_upgrade` function. + if is_worker: + raise PrepareDatabaseException( + UNAPPLIED_DELTA_ON_WORKER_ERROR % relative_path + ) + module_name = "synapse.storage.v%d_%s" % (v, root_name) with open(absolute_path) as python_file: module = imp.load_source(module_name, absolute_path, python_file) @@ -399,10 +433,18 @@ def _upgrade_existing_database( continue elif ext == ".sql": # A plain old .sql file, just read and execute it + if is_worker: + raise PrepareDatabaseException( + UNAPPLIED_DELTA_ON_WORKER_ERROR % relative_path + ) logger.info("Applying schema %s", relative_path) executescript(cur, absolute_path) elif ext == specific_engine_extension and root_name.endswith(".sql"): # A .sql file specific to our engine; just read and execute it + if is_worker: + raise PrepareDatabaseException( + UNAPPLIED_DELTA_ON_WORKER_ERROR % relative_path + ) logger.info("Applying engine-specific schema %s", relative_path) executescript(cur, absolute_path) elif ext in specific_engine_extensions and root_name.endswith(".sql"): @@ -432,6 +474,8 @@ def _upgrade_existing_database( (v, True), ) + logger.info("Schema now up to date") + def _apply_module_schemas(txn, database_engine, config): """Apply the module schemas for the dynamic modules, if any From 0dae7d80bfb497d417a53e52b8353bbcd6d10d58 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Mon, 7 Sep 2020 13:36:02 +0100 Subject: [PATCH 2/7] Add more logging to debug slow startup (#8264) I'm hoping this will provide some pointers for debugging https://github.com/matrix-org/synapse/issues/7968. --- changelog.d/8264.misc | 1 + synapse/storage/databases/__init__.py | 23 +++++++++++++++------- synapse/storage/databases/main/__init__.py | 1 + synapse/storage/prepare_database.py | 10 ++++++++++ synapse/storage/util/id_generators.py | 5 +++++ 5 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 changelog.d/8264.misc diff --git a/changelog.d/8264.misc b/changelog.d/8264.misc new file mode 100644 index 000000000000..600b1756552d --- /dev/null +++ b/changelog.d/8264.misc @@ -0,0 +1 @@ +Add more logging to debug slow startup. diff --git a/synapse/storage/databases/__init__.py b/synapse/storage/databases/__init__.py index 7f08bd82857b..985b12df9132 100644 --- a/synapse/storage/databases/__init__.py +++ b/synapse/storage/databases/__init__.py @@ -47,9 +47,14 @@ def __init__(self, main_store_class, hs): engine = create_engine(database_config.config) with make_conn(database_config, engine) as db_conn: - logger.info("Preparing database %r...", db_name) - + logger.info("[database config %r]: Checking database server", db_name) engine.check_database(db_conn) + + logger.info( + "[database config %r]: Preparing for databases %r", + db_name, + database_config.databases, + ) prepare_database( db_conn, engine, hs.config, databases=database_config.databases, ) @@ -57,7 +62,9 @@ def __init__(self, main_store_class, hs): database = DatabasePool(hs, database_config, engine) if "main" in database_config.databases: - logger.info("Starting 'main' data store") + logger.info( + "[database config %r]: Starting 'main' database", db_name + ) # Sanity check we don't try and configure the main store on # multiple databases. @@ -72,7 +79,9 @@ def __init__(self, main_store_class, hs): persist_events = PersistEventsStore(hs, database, main) if "state" in database_config.databases: - logger.info("Starting 'state' data store") + logger.info( + "[database config %r]: Starting 'state' database", db_name + ) # Sanity check we don't try and configure the state store on # multiple databases. @@ -85,7 +94,7 @@ def __init__(self, main_store_class, hs): self.databases.append(database) - logger.info("Database %r prepared", db_name) + logger.info("[database config %r]: prepared", db_name) # Closing the context manager doesn't close the connection. # psycopg will close the connection when the object gets GCed, but *only* @@ -98,10 +107,10 @@ def __init__(self, main_store_class, hs): # Sanity check that we have actually configured all the required stores. if not main: - raise Exception("No 'main' data store configured") + raise Exception("No 'main' database configured") if not state: - raise Exception("No 'state' data store configured") + raise Exception("No 'state' database configured") # We use local variables here to ensure that the databases do not have # optional types. diff --git a/synapse/storage/databases/main/__init__.py b/synapse/storage/databases/main/__init__.py index 99890ffbf32f..b315ae66d279 100644 --- a/synapse/storage/databases/main/__init__.py +++ b/synapse/storage/databases/main/__init__.py @@ -591,6 +591,7 @@ def check_database_before_upgrade(cur, database_engine, config: HomeServerConfig """Called before upgrading an existing database to check that it is broadly sane compared with the configuration. """ + logger.info("Running sanity-checks on database...") domain = config.server_name sql = database_engine.convert_param_style( diff --git a/synapse/storage/prepare_database.py b/synapse/storage/prepare_database.py index 93dca96476b2..ee60e2a7188d 100644 --- a/synapse/storage/prepare_database.py +++ b/synapse/storage/prepare_database.py @@ -82,10 +82,18 @@ def prepare_database(db_conn, database_engine, config, databases=["main", "state try: cur = db_conn.cursor() + + logger.info("%r: Checking existing schema version", databases) version_info = _get_or_create_schema_state(cur, database_engine) if version_info: user_version, delta_files, upgraded = version_info + logger.info( + "%r: Existing schema is %i (+%i deltas)", + databases, + user_version, + len(delta_files), + ) # config should only be None when we are preparing an in-memory SQLite db, # which should be empty. @@ -111,6 +119,8 @@ def prepare_database(db_conn, database_engine, config, databases=["main", "state databases=databases, ) else: + logger.info("%r: Initialising new database", databases) + # if it's a worker app, refuse to upgrade the database, to avoid multiple # workers doing it at once. if config and config.worker_app is not None: diff --git a/synapse/storage/util/id_generators.py b/synapse/storage/util/id_generators.py index 76bc3afdfae8..b7eb4f8ac90e 100644 --- a/synapse/storage/util/id_generators.py +++ b/synapse/storage/util/id_generators.py @@ -15,6 +15,7 @@ import contextlib import heapq +import logging import threading from collections import deque from typing import Dict, List, Set @@ -24,6 +25,8 @@ from synapse.storage.database import DatabasePool, LoggingTransaction from synapse.storage.util.sequence import PostgresSequenceGenerator +logger = logging.getLogger(__name__) + class IdGenerator: def __init__(self, db_conn, table, column): @@ -48,6 +51,8 @@ def _load_current_id(db_conn, table, column, step=1): Returns: int """ + # debug logging for https://github.com/matrix-org/synapse/issues/7968 + logger.info("initialising stream generator for %s(%s)", table, column) cur = db_conn.cursor() if step == 1: cur.execute("SELECT MAX(%s) FROM %s" % (column, table)) From a55e2707d73c19b555c18ebc19df3170a96055e2 Mon Sep 17 00:00:00 2001 From: Brendan Abolivier Date: Mon, 7 Sep 2020 15:15:06 +0100 Subject: [PATCH 3/7] Fix unread count failing on NULL values (#8270) Fix unread counts making sync fail if the value of the `unread_count` column in `event_push_summary` is `None`. --- changelog.d/8270.feature | 1 + synapse/storage/databases/main/event_push_actions.py | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 changelog.d/8270.feature diff --git a/changelog.d/8270.feature b/changelog.d/8270.feature new file mode 100644 index 000000000000..feb02be234bf --- /dev/null +++ b/changelog.d/8270.feature @@ -0,0 +1 @@ +Add unread messages count to sync responses, as specified in [MSC2654](https://github.com/matrix-org/matrix-doc/pull/2654). diff --git a/synapse/storage/databases/main/event_push_actions.py b/synapse/storage/databases/main/event_push_actions.py index 001d06378dee..50fac9e72e13 100644 --- a/synapse/storage/databases/main/event_push_actions.py +++ b/synapse/storage/databases/main/event_push_actions.py @@ -177,7 +177,12 @@ def _get_unread_counts_by_pos_txn(self, txn, room_id, user_id, stream_ordering): if row: notif_count += row[0] - unread_count += row[1] + + if row[1] is not None: + # The unread_count column of event_push_summary is NULLable, so we need + # to make sure we don't try increasing the unread counts if it's NULL + # for this row. + unread_count += row[1] return { "notify_count": notif_count, From ef2804d27c766595f9eae134422652d1d32df9a6 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Mon, 7 Sep 2020 16:48:52 +0100 Subject: [PATCH 4/7] Avoid table-scanning users at startup (#8271) This takes about 10 seconds in the best case; often more. --- changelog.d/8271.bugfix | 1 + synapse/storage/databases/main/__init__.py | 25 ++++++++++++---------- 2 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 changelog.d/8271.bugfix diff --git a/changelog.d/8271.bugfix b/changelog.d/8271.bugfix new file mode 100644 index 000000000000..b75f07b03c8a --- /dev/null +++ b/changelog.d/8271.bugfix @@ -0,0 +1 @@ +Fix slow start times for large servers by removing a table scan of the `users` table from startup code. diff --git a/synapse/storage/databases/main/__init__.py b/synapse/storage/databases/main/__init__.py index b315ae66d279..2ae2fbd5d75f 100644 --- a/synapse/storage/databases/main/__init__.py +++ b/synapse/storage/databases/main/__init__.py @@ -29,6 +29,7 @@ MultiWriterIdGenerator, StreamIdGenerator, ) +from synapse.types import get_domain_from_id from synapse.util.caches.stream_change_cache import StreamChangeCache from .account_data import AccountDataStore @@ -591,22 +592,24 @@ def check_database_before_upgrade(cur, database_engine, config: HomeServerConfig """Called before upgrading an existing database to check that it is broadly sane compared with the configuration. """ - logger.info("Running sanity-checks on database...") - domain = config.server_name + logger.info("Checking database for consistency with configuration...") - sql = database_engine.convert_param_style( - "SELECT COUNT(*) FROM users WHERE name NOT LIKE ?" - ) - pat = "%:" + domain - cur.execute(sql, (pat,)) - num_not_matching = cur.fetchall()[0][0] - if num_not_matching == 0: + # if there are any users in the database, check that the username matches our + # configured server name. + + cur.execute("SELECT name FROM users LIMIT 1") + rows = cur.fetchall() + if not rows: + return + + user_domain = get_domain_from_id(rows[0][0]) + if user_domain == config.server_name: return raise Exception( "Found users in database not native to %s!\n" - "You cannot changed a synapse server_name after it's been configured" - % (domain,) + "You cannot change a synapse server_name after it's been configured" + % (config.server_name,) ) From d8762cc116110ed0d4557b902414ed5ee9ccea96 Mon Sep 17 00:00:00 2001 From: Brendan Abolivier Date: Mon, 7 Sep 2020 16:56:27 +0100 Subject: [PATCH 5/7] Only add rows to the push actions table if the event notifies or should be marked unread (#8274) --- changelog.d/8274.feature | 1 + synapse/push/bulk_push_rule_evaluator.py | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 changelog.d/8274.feature diff --git a/changelog.d/8274.feature b/changelog.d/8274.feature new file mode 100644 index 000000000000..feb02be234bf --- /dev/null +++ b/changelog.d/8274.feature @@ -0,0 +1 @@ +Add unread messages count to sync responses, as specified in [MSC2654](https://github.com/matrix-org/matrix-doc/pull/2654). diff --git a/synapse/push/bulk_push_rule_evaluator.py b/synapse/push/bulk_push_rule_evaluator.py index 1bb8e346b905..c440f2545c5e 100644 --- a/synapse/push/bulk_push_rule_evaluator.py +++ b/synapse/push/bulk_push_rule_evaluator.py @@ -219,7 +219,12 @@ async def action_for_event_by_user(self, event, context) -> None: if event.type == EventTypes.Member and event.state_key == uid: display_name = event.content.get("displayname", None) - actions_by_user[uid] = [] + if count_as_unread: + # Add an element for the current user if the event needs to be marked as + # unread, so that add_push_actions_to_staging iterates over it. + # If the event shouldn't be marked as unread but should notify the + # current user, it'll be added to the dict later. + actions_by_user[uid] = [] for rule in rules: if "enabled" in rule and not rule["enabled"]: From ad28030c124ab797f00a94fb1590d81559bb649c Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Tue, 8 Sep 2020 10:57:43 +0100 Subject: [PATCH 6/7] Systemd docs: configure workers to start after main process. (#8276) --- changelog.d/8276.misc | 1 + .../system/matrix-synapse-worker@.service | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 changelog.d/8276.misc diff --git a/changelog.d/8276.misc b/changelog.d/8276.misc new file mode 100644 index 000000000000..e7c899bea882 --- /dev/null +++ b/changelog.d/8276.misc @@ -0,0 +1 @@ +Do not attempt to upgrade upgrade database schema on worker processes. diff --git a/docs/systemd-with-workers/system/matrix-synapse-worker@.service b/docs/systemd-with-workers/system/matrix-synapse-worker@.service index 39bc5e88e862..cb5ac0ac8754 100644 --- a/docs/systemd-with-workers/system/matrix-synapse-worker@.service +++ b/docs/systemd-with-workers/system/matrix-synapse-worker@.service @@ -1,9 +1,14 @@ [Unit] Description=Synapse %i AssertPathExists=/etc/matrix-synapse/workers/%i.yaml + # This service should be restarted when the synapse target is restarted. PartOf=matrix-synapse.target +# if this is started at the same time as the main, let the main process start +# first, to initialise the database schema. +After=matrix-synapse.service + [Service] Type=notify NotifyAccess=main From 525efab612af2fb501d79b139f045aa7933394d9 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Tue, 8 Sep 2020 12:58:37 +0100 Subject: [PATCH 7/7] 1.20.0rc1 --- CHANGES.md | 87 ++++++++++++++++++++++++++++++++++++---- changelog.d/7377.misc | 1 - changelog.d/7757.misc | 1 - changelog.d/7785.feature | 1 - changelog.d/7864.bugfix | 1 - changelog.d/7991.misc | 1 - changelog.d/8013.feature | 1 - changelog.d/8034.feature | 1 - changelog.d/8037.feature | 1 - changelog.d/8059.feature | 1 - changelog.d/8071.misc | 1 - changelog.d/8072.misc | 1 - changelog.d/8074.misc | 1 - changelog.d/8075.misc | 1 - changelog.d/8076.misc | 1 - changelog.d/8081.bugfix | 1 - changelog.d/8085.misc | 1 - changelog.d/8087.misc | 1 - changelog.d/8090.misc | 1 - changelog.d/8092.feature | 1 - changelog.d/8093.misc | 1 - changelog.d/8095.feature | 1 - changelog.d/8100.misc | 1 - changelog.d/8101.bugfix | 1 - changelog.d/8104.bugfix | 1 - changelog.d/8106.bugfix | 1 - changelog.d/8107.feature | 1 - changelog.d/8110.bugfix | 1 - changelog.d/8111.doc | 1 - changelog.d/8112.misc | 1 - changelog.d/8113.misc | 1 - changelog.d/8116.feature | 1 - changelog.d/8119.misc | 1 - changelog.d/8120.doc | 1 - changelog.d/8121.misc | 1 - changelog.d/8123.misc | 1 - changelog.d/8124.misc | 1 - changelog.d/8127.misc | 1 - changelog.d/8129.bugfix | 1 - changelog.d/8130.misc | 1 - changelog.d/8131.bugfix | 1 - changelog.d/8132.misc | 1 - changelog.d/8133.misc | 1 - changelog.d/8135.bugfix | 1 - changelog.d/8139.bugfix | 1 - changelog.d/8140.misc | 1 - changelog.d/8142.feature | 1 - changelog.d/8144.docker | 1 - changelog.d/8147.docker | 1 - changelog.d/8152.feature | 1 - changelog.d/8156.misc | 1 - changelog.d/8157.feature | 1 - changelog.d/8158.feature | 1 - changelog.d/8161.misc | 1 - changelog.d/8162.misc | 1 - changelog.d/8163.misc | 1 - changelog.d/8164.misc | 1 - changelog.d/8166.misc | 1 - changelog.d/8167.misc | 1 - changelog.d/8168.misc | 1 - changelog.d/8171.misc | 1 - changelog.d/8173.misc | 1 - changelog.d/8174.misc | 1 - changelog.d/8175.misc | 1 - changelog.d/8176.feature | 1 - changelog.d/8179.misc | 1 - changelog.d/8181.misc | 1 - changelog.d/8182.misc | 1 - changelog.d/8183.misc | 1 - changelog.d/8187.misc | 1 - changelog.d/8189.doc | 1 - changelog.d/8190.bugfix | 1 - changelog.d/8191.misc | 1 - changelog.d/8192.misc | 1 - changelog.d/8193.misc | 1 - changelog.d/8194.misc | 1 - changelog.d/8195.misc | 1 - changelog.d/8196.misc | 1 - changelog.d/8197.misc | 1 - changelog.d/8198.feature | 1 - changelog.d/8199.misc | 1 - changelog.d/8200.misc | 1 - changelog.d/8201.misc | 1 - changelog.d/8202.misc | 1 - changelog.d/8203.misc | 1 - changelog.d/8204.misc | 1 - changelog.d/8205.misc | 1 - changelog.d/8207.misc | 1 - changelog.d/8213.misc | 1 - changelog.d/8214.misc | 1 - changelog.d/8222.misc | 1 - changelog.d/8223.bugfix | 1 - changelog.d/8224.misc | 1 - changelog.d/8225.misc | 1 - changelog.d/8226.bugfix | 1 - changelog.d/8231.misc | 1 - changelog.d/8232.misc | 1 - changelog.d/8233.misc | 1 - changelog.d/8234.misc | 1 - changelog.d/8235.misc | 1 - changelog.d/8237.misc | 1 - changelog.d/8240.misc | 1 - changelog.d/8241.misc | 1 - changelog.d/8242.feature | 1 - changelog.d/8244.misc | 1 - changelog.d/8245.misc | 1 - changelog.d/8249.misc | 1 - changelog.d/8252.feature | 1 - changelog.d/8254.feature | 1 - changelog.d/8264.misc | 1 - changelog.d/8266.misc | 1 - changelog.d/8270.feature | 1 - changelog.d/8271.bugfix | 1 - changelog.d/8274.feature | 1 - changelog.d/8276.misc | 1 - synapse/__init__.py | 2 +- 116 files changed, 80 insertions(+), 123 deletions(-) delete mode 100644 changelog.d/7377.misc delete mode 100644 changelog.d/7757.misc delete mode 100644 changelog.d/7785.feature delete mode 100644 changelog.d/7864.bugfix delete mode 100644 changelog.d/7991.misc delete mode 100644 changelog.d/8013.feature delete mode 100644 changelog.d/8034.feature delete mode 100644 changelog.d/8037.feature delete mode 100644 changelog.d/8059.feature delete mode 100644 changelog.d/8071.misc delete mode 100644 changelog.d/8072.misc delete mode 100644 changelog.d/8074.misc delete mode 100644 changelog.d/8075.misc delete mode 100644 changelog.d/8076.misc delete mode 100644 changelog.d/8081.bugfix delete mode 100644 changelog.d/8085.misc delete mode 100644 changelog.d/8087.misc delete mode 100644 changelog.d/8090.misc delete mode 100644 changelog.d/8092.feature delete mode 100644 changelog.d/8093.misc delete mode 100644 changelog.d/8095.feature delete mode 100644 changelog.d/8100.misc delete mode 100644 changelog.d/8101.bugfix delete mode 100644 changelog.d/8104.bugfix delete mode 100644 changelog.d/8106.bugfix delete mode 100644 changelog.d/8107.feature delete mode 100644 changelog.d/8110.bugfix delete mode 100644 changelog.d/8111.doc delete mode 100644 changelog.d/8112.misc delete mode 100644 changelog.d/8113.misc delete mode 100644 changelog.d/8116.feature delete mode 100644 changelog.d/8119.misc delete mode 100644 changelog.d/8120.doc delete mode 100644 changelog.d/8121.misc delete mode 100644 changelog.d/8123.misc delete mode 100644 changelog.d/8124.misc delete mode 100644 changelog.d/8127.misc delete mode 100644 changelog.d/8129.bugfix delete mode 100644 changelog.d/8130.misc delete mode 100644 changelog.d/8131.bugfix delete mode 100644 changelog.d/8132.misc delete mode 100644 changelog.d/8133.misc delete mode 100644 changelog.d/8135.bugfix delete mode 100644 changelog.d/8139.bugfix delete mode 100644 changelog.d/8140.misc delete mode 100644 changelog.d/8142.feature delete mode 100644 changelog.d/8144.docker delete mode 100644 changelog.d/8147.docker delete mode 100644 changelog.d/8152.feature delete mode 100644 changelog.d/8156.misc delete mode 100644 changelog.d/8157.feature delete mode 100644 changelog.d/8158.feature delete mode 100644 changelog.d/8161.misc delete mode 100644 changelog.d/8162.misc delete mode 100644 changelog.d/8163.misc delete mode 100644 changelog.d/8164.misc delete mode 100644 changelog.d/8166.misc delete mode 100644 changelog.d/8167.misc delete mode 100644 changelog.d/8168.misc delete mode 100644 changelog.d/8171.misc delete mode 100644 changelog.d/8173.misc delete mode 100644 changelog.d/8174.misc delete mode 100644 changelog.d/8175.misc delete mode 100644 changelog.d/8176.feature delete mode 100644 changelog.d/8179.misc delete mode 100644 changelog.d/8181.misc delete mode 100644 changelog.d/8182.misc delete mode 100644 changelog.d/8183.misc delete mode 100644 changelog.d/8187.misc delete mode 100644 changelog.d/8189.doc delete mode 100644 changelog.d/8190.bugfix delete mode 100644 changelog.d/8191.misc delete mode 100644 changelog.d/8192.misc delete mode 100644 changelog.d/8193.misc delete mode 100644 changelog.d/8194.misc delete mode 100644 changelog.d/8195.misc delete mode 100644 changelog.d/8196.misc delete mode 100644 changelog.d/8197.misc delete mode 100644 changelog.d/8198.feature delete mode 100644 changelog.d/8199.misc delete mode 100644 changelog.d/8200.misc delete mode 100644 changelog.d/8201.misc delete mode 100644 changelog.d/8202.misc delete mode 100644 changelog.d/8203.misc delete mode 100644 changelog.d/8204.misc delete mode 100644 changelog.d/8205.misc delete mode 100644 changelog.d/8207.misc delete mode 100644 changelog.d/8213.misc delete mode 100644 changelog.d/8214.misc delete mode 100644 changelog.d/8222.misc delete mode 100644 changelog.d/8223.bugfix delete mode 100644 changelog.d/8224.misc delete mode 100644 changelog.d/8225.misc delete mode 100644 changelog.d/8226.bugfix delete mode 100644 changelog.d/8231.misc delete mode 100644 changelog.d/8232.misc delete mode 100644 changelog.d/8233.misc delete mode 100644 changelog.d/8234.misc delete mode 100644 changelog.d/8235.misc delete mode 100644 changelog.d/8237.misc delete mode 100644 changelog.d/8240.misc delete mode 100644 changelog.d/8241.misc delete mode 100644 changelog.d/8242.feature delete mode 100644 changelog.d/8244.misc delete mode 100644 changelog.d/8245.misc delete mode 100644 changelog.d/8249.misc delete mode 100644 changelog.d/8252.feature delete mode 100644 changelog.d/8254.feature delete mode 100644 changelog.d/8264.misc delete mode 100644 changelog.d/8266.misc delete mode 100644 changelog.d/8270.feature delete mode 100644 changelog.d/8271.bugfix delete mode 100644 changelog.d/8274.feature delete mode 100644 changelog.d/8276.misc diff --git a/CHANGES.md b/CHANGES.md index 92e29983b99c..6044fc2a90f3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,15 +1,86 @@ -For the next release -==================== +Synapse 1.20.0rc1 (2020-09-08) +============================== Removal warning --------------- -Some older clients used a -[disallowed character](https://matrix.org/docs/spec/client_server/r0.6.1#post-matrix-client-r0-register-email-requesttoken) -(`:`) in the `client_secret` parameter of various endpoints. The incorrect -behaviour was allowed for backwards compatibility, but is now being removed -from Synapse as most users have updated their client. Further context can be -found at [\#6766](https://github.com/matrix-org/synapse/issues/6766). +Some older clients used a [disallowed character](https://matrix.org/docs/spec/client_server/r0.6.1#post-matrix-client-r0-register-email-requesttoken) (`:`) in the `client_secret` parameter of various endpoints. The incorrect behaviour was allowed for backwards compatibility, but is now being removed from Synapse as most users have updated their client. Further context can be found at [\#6766](https://github.com/matrix-org/synapse/issues/6766). + +Features +-------- + +- Add an endpoint to query your shared rooms with another user as an implementation of [MSC2666](https://github.com/matrix-org/matrix-doc/pull/2666). ([\#7785](https://github.com/matrix-org/synapse/issues/7785)) +- Iteratively encode JSON to avoid blocking the reactor. ([\#8013](https://github.com/matrix-org/synapse/issues/8013), [\#8116](https://github.com/matrix-org/synapse/issues/8116)) +- Add support for shadow-banning users (ignoring any message send requests). ([\#8034](https://github.com/matrix-org/synapse/issues/8034), [\#8092](https://github.com/matrix-org/synapse/issues/8092), [\#8095](https://github.com/matrix-org/synapse/issues/8095), [\#8142](https://github.com/matrix-org/synapse/issues/8142), [\#8152](https://github.com/matrix-org/synapse/issues/8152), [\#8157](https://github.com/matrix-org/synapse/issues/8157), [\#8158](https://github.com/matrix-org/synapse/issues/8158), [\#8176](https://github.com/matrix-org/synapse/issues/8176)) +- Use the default template file when its equivalent is not found in a custom template directory. ([\#8037](https://github.com/matrix-org/synapse/issues/8037), [\#8107](https://github.com/matrix-org/synapse/issues/8107), [\#8252](https://github.com/matrix-org/synapse/issues/8252)) +- Add unread messages count to sync responses, as specified in [MSC2654](https://github.com/matrix-org/matrix-doc/pull/2654). ([\#8059](https://github.com/matrix-org/synapse/issues/8059), [\#8254](https://github.com/matrix-org/synapse/issues/8254), [\#8270](https://github.com/matrix-org/synapse/issues/8270), [\#8274](https://github.com/matrix-org/synapse/issues/8274)) +- Optimise `/federation/v1/user/devices/` API by only returning devices with encryption keys. ([\#8198](https://github.com/matrix-org/synapse/issues/8198)) + + +Bugfixes +-------- + +- Fix a memory leak by limiting the length of time that messages will be queued for a remote server that has been unreachable. ([\#7864](https://github.com/matrix-org/synapse/issues/7864)) +- Fix `Re-starting finished log context PUT-nnnn` warning when event persistence failed. ([\#8081](https://github.com/matrix-org/synapse/issues/8081)) +- Synapse now correctly enforces the valid characters in the `client_secret` parameter used in various endpoints. ([\#8101](https://github.com/matrix-org/synapse/issues/8101)) +- Fix a bug introduced in v1.7.2 impacting message retention policies that would allow federated homeservers to dictate a retention period that's lower than the configured minimum allowed duration in the configuration file. ([\#8104](https://github.com/matrix-org/synapse/issues/8104)) +- Fix a long-standing bug where invalid JSON would be accepted by Synapse. ([\#8106](https://github.com/matrix-org/synapse/issues/8106)) +- Fix a bug introduced in Synapse v1.12.0 which could cause `/sync` requests to fail with a 404 if you had a very old outstanding room invite. ([\#8110](https://github.com/matrix-org/synapse/issues/8110)) +- Return a proper error code when the rooms of an invalid group are requested. ([\#8129](https://github.com/matrix-org/synapse/issues/8129)) +- Fix a bug which could cause a leaked postgres connection if synapse was set to daemonize. ([\#8131](https://github.com/matrix-org/synapse/issues/8131)) +- Clarify the error code if a user tries to register with a numeric ID. This bug was introduced in v1.15.0. ([\#8135](https://github.com/matrix-org/synapse/issues/8135)) +- Fixes a bug where appservices with ratelimiting disabled would still be ratelimited when joining rooms. This bug was introduced in v1.19.0. ([\#8139](https://github.com/matrix-org/synapse/issues/8139)) +- Fix logging in via OpenID Connect with a provider that uses integer user IDs. ([\#8190](https://github.com/matrix-org/synapse/issues/8190)) +- Fixes a longstanding bug where user directory updates could break when unexpected profile data was included in events. ([\#8223](https://github.com/matrix-org/synapse/issues/8223)) +- Fix a longstanding bug where stats updates could break when unexpected profile data was included in events. ([\#8226](https://github.com/matrix-org/synapse/issues/8226)) +- Fix slow start times for large servers by removing a table scan of the `users` table from startup code. ([\#8271](https://github.com/matrix-org/synapse/issues/8271)) + + +Updates to the Docker image +--------------------------- + +- Fix builds of the Docker image on non-x86 platforms. ([\#8144](https://github.com/matrix-org/synapse/issues/8144)) +- Added curl for healthcheck support and readme updates for the change. Contributed by @maquis196. ([\#8147](https://github.com/matrix-org/synapse/issues/8147)) + + +Improved Documentation +---------------------- + +- Link to matrix-synapse-rest-password-provider in the password provider documentation. ([\#8111](https://github.com/matrix-org/synapse/issues/8111)) +- Updated documentation to note that Synapse does not follow `HTTP 308` redirects due to an upstream library not supporting them. Contributed by Ryan Cole. ([\#8120](https://github.com/matrix-org/synapse/issues/8120)) +- Explain better what GDPR-erased means when deactivating a user. ([\#8189](https://github.com/matrix-org/synapse/issues/8189)) + + +Internal Changes +---------------- + +- Add filter `name` to the `/users` admin API, which filters by user ID or displayname. Contributed by Awesome Technologies Innovationslabor GmbH. ([\#7377](https://github.com/matrix-org/synapse/issues/7377), [\#8163](https://github.com/matrix-org/synapse/issues/8163)) +- Reduce run times of some unit tests by advancing the reactor a fewer number of times. ([\#7757](https://github.com/matrix-org/synapse/issues/7757)) +- Don't fail `/submit_token` requests on incorrect session ID if `request_token_inhibit_3pid_errors` is turned on. ([\#7991](https://github.com/matrix-org/synapse/issues/7991)) +- Convert various parts of the codebase to async/await. ([\#8071](https://github.com/matrix-org/synapse/issues/8071), [\#8072](https://github.com/matrix-org/synapse/issues/8072), [\#8074](https://github.com/matrix-org/synapse/issues/8074), [\#8075](https://github.com/matrix-org/synapse/issues/8075), [\#8076](https://github.com/matrix-org/synapse/issues/8076), [\#8087](https://github.com/matrix-org/synapse/issues/8087), [\#8100](https://github.com/matrix-org/synapse/issues/8100), [\#8119](https://github.com/matrix-org/synapse/issues/8119), [\#8121](https://github.com/matrix-org/synapse/issues/8121), [\#8133](https://github.com/matrix-org/synapse/issues/8133), [\#8156](https://github.com/matrix-org/synapse/issues/8156), [\#8162](https://github.com/matrix-org/synapse/issues/8162), [\#8166](https://github.com/matrix-org/synapse/issues/8166), [\#8168](https://github.com/matrix-org/synapse/issues/8168), [\#8173](https://github.com/matrix-org/synapse/issues/8173), [\#8191](https://github.com/matrix-org/synapse/issues/8191), [\#8192](https://github.com/matrix-org/synapse/issues/8192), [\#8193](https://github.com/matrix-org/synapse/issues/8193), [\#8194](https://github.com/matrix-org/synapse/issues/8194), [\#8195](https://github.com/matrix-org/synapse/issues/8195), [\#8197](https://github.com/matrix-org/synapse/issues/8197), [\#8199](https://github.com/matrix-org/synapse/issues/8199), [\#8200](https://github.com/matrix-org/synapse/issues/8200), [\#8201](https://github.com/matrix-org/synapse/issues/8201), [\#8202](https://github.com/matrix-org/synapse/issues/8202), [\#8207](https://github.com/matrix-org/synapse/issues/8207), [\#8213](https://github.com/matrix-org/synapse/issues/8213), [\#8214](https://github.com/matrix-org/synapse/issues/8214)) +- Remove some unused database functions. ([\#8085](https://github.com/matrix-org/synapse/issues/8085)) +- Add type hints to various parts of the codebase. ([\#8090](https://github.com/matrix-org/synapse/issues/8090), [\#8127](https://github.com/matrix-org/synapse/issues/8127), [\#8187](https://github.com/matrix-org/synapse/issues/8187), [\#8241](https://github.com/matrix-org/synapse/issues/8241), [\#8140](https://github.com/matrix-org/synapse/issues/8140), [\#8183](https://github.com/matrix-org/synapse/issues/8183), [\#8232](https://github.com/matrix-org/synapse/issues/8232), [\#8235](https://github.com/matrix-org/synapse/issues/8235), [\#8237](https://github.com/matrix-org/synapse/issues/8237), [\#8244](https://github.com/matrix-org/synapse/issues/8244)) +- Return the previous stream token if a non-member event is a duplicate. ([\#8093](https://github.com/matrix-org/synapse/issues/8093), [\#8112](https://github.com/matrix-org/synapse/issues/8112)) +- Separate `get_current_token` into two since there are two different use cases for it. ([\#8113](https://github.com/matrix-org/synapse/issues/8113)) +- Remove `ChainedIdGenerator`. ([\#8123](https://github.com/matrix-org/synapse/issues/8123)) +- Reduce the amount of whitespace in JSON stored and sent in responses. ([\#8124](https://github.com/matrix-org/synapse/issues/8124)) +- Update the test federation client to handle streaming responses. ([\#8130](https://github.com/matrix-org/synapse/issues/8130)) +- Micro-optimisations to `get_auth_chain_ids`. ([\#8132](https://github.com/matrix-org/synapse/issues/8132)) +- Refactor `StreamIdGenerator` and `MultiWriterIdGenerator` to have the same interface. ([\#8161](https://github.com/matrix-org/synapse/issues/8161)) +- Add functions to `MultiWriterIdGen` used by events stream. ([\#8164](https://github.com/matrix-org/synapse/issues/8164), [\#8179](https://github.com/matrix-org/synapse/issues/8179)) +- Fix tests that were broken due to the merge of 1.19.1. ([\#8167](https://github.com/matrix-org/synapse/issues/8167)) +- Make `SlavedIdTracker.advance` have the same interface as `MultiWriterIDGenerator`. ([\#8171](https://github.com/matrix-org/synapse/issues/8171)) +- Remove unused `is_guest` parameter from, and add safeguard to, `MessageHandler.get_room_data`. ([\#8174](https://github.com/matrix-org/synapse/issues/8174), [\#8181](https://github.com/matrix-org/synapse/issues/8181)) +- Standardize the mypy configuration. ([\#8175](https://github.com/matrix-org/synapse/issues/8175)) +- Refactor some of `LoginRestServlet`'s helper methods, and move them to `AuthHandler` for easier reuse. ([\#8182](https://github.com/matrix-org/synapse/issues/8182)) +- Fix `wait_for_stream_position` to allow multiple waiters on same stream ID. ([\#8196](https://github.com/matrix-org/synapse/issues/8196)) +- Make `MultiWriterIDGenerator` work for streams that use negative values. ([\#8203](https://github.com/matrix-org/synapse/issues/8203)) +- Refactor queries for device keys and cross-signatures. ([\#8204](https://github.com/matrix-org/synapse/issues/8204), [\#8205](https://github.com/matrix-org/synapse/issues/8205), [\#8222](https://github.com/matrix-org/synapse/issues/8222), [\#8224](https://github.com/matrix-org/synapse/issues/8224), [\#8225](https://github.com/matrix-org/synapse/issues/8225), [\#8231](https://github.com/matrix-org/synapse/issues/8231), [\#8233](https://github.com/matrix-org/synapse/issues/8233), [\#8234](https://github.com/matrix-org/synapse/issues/8234)) +- Fix type hints for functions decorated with `@cached`. ([\#8240](https://github.com/matrix-org/synapse/issues/8240)) +- Remove obsolete `order` field from federation send queues. ([\#8245](https://github.com/matrix-org/synapse/issues/8245)) +- Stop sub-classing from object. ([\#8249](https://github.com/matrix-org/synapse/issues/8249)) +- Add more logging to debug slow startup. ([\#8264](https://github.com/matrix-org/synapse/issues/8264)) +- Do not attempt to upgrade upgrade database schema on worker processes. ([\#8266](https://github.com/matrix-org/synapse/issues/8266), [\#8276](https://github.com/matrix-org/synapse/issues/8276)) Synapse 1.19.1 (2020-08-27) diff --git a/changelog.d/7377.misc b/changelog.d/7377.misc deleted file mode 100644 index b3ec08855b49..000000000000 --- a/changelog.d/7377.misc +++ /dev/null @@ -1 +0,0 @@ -Add filter `name` to the `/users` admin API, which filters by user ID or displayname. Contributed by Awesome Technologies Innovationslabor GmbH. diff --git a/changelog.d/7757.misc b/changelog.d/7757.misc deleted file mode 100644 index 091f40382e68..000000000000 --- a/changelog.d/7757.misc +++ /dev/null @@ -1 +0,0 @@ -Reduce run times of some unit tests by advancing the reactor a fewer number of times. \ No newline at end of file diff --git a/changelog.d/7785.feature b/changelog.d/7785.feature deleted file mode 100644 index c7e51c932035..000000000000 --- a/changelog.d/7785.feature +++ /dev/null @@ -1 +0,0 @@ -Add an endpoint to query your shared rooms with another user as an implementation of [MSC2666](https://github.com/matrix-org/matrix-doc/pull/2666). diff --git a/changelog.d/7864.bugfix b/changelog.d/7864.bugfix deleted file mode 100644 index 8623355fe921..000000000000 --- a/changelog.d/7864.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a memory leak by limiting the length of time that messages will be queued for a remote server that has been unreachable. diff --git a/changelog.d/7991.misc b/changelog.d/7991.misc deleted file mode 100644 index 1562e3af9e55..000000000000 --- a/changelog.d/7991.misc +++ /dev/null @@ -1 +0,0 @@ -Don't fail `/submit_token` requests on incorrect session ID if `request_token_inhibit_3pid_errors` is turned on. diff --git a/changelog.d/8013.feature b/changelog.d/8013.feature deleted file mode 100644 index b1eaf1e78a71..000000000000 --- a/changelog.d/8013.feature +++ /dev/null @@ -1 +0,0 @@ -Iteratively encode JSON to avoid blocking the reactor. diff --git a/changelog.d/8034.feature b/changelog.d/8034.feature deleted file mode 100644 index 813e6d0903d9..000000000000 --- a/changelog.d/8034.feature +++ /dev/null @@ -1 +0,0 @@ -Add support for shadow-banning users (ignoring any message send requests). diff --git a/changelog.d/8037.feature b/changelog.d/8037.feature deleted file mode 100644 index 2e5127477d5a..000000000000 --- a/changelog.d/8037.feature +++ /dev/null @@ -1 +0,0 @@ -Use the default template file when its equivalent is not found in a custom template directory. \ No newline at end of file diff --git a/changelog.d/8059.feature b/changelog.d/8059.feature deleted file mode 100644 index feb02be234bf..000000000000 --- a/changelog.d/8059.feature +++ /dev/null @@ -1 +0,0 @@ -Add unread messages count to sync responses, as specified in [MSC2654](https://github.com/matrix-org/matrix-doc/pull/2654). diff --git a/changelog.d/8071.misc b/changelog.d/8071.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8071.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8072.misc b/changelog.d/8072.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8072.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8074.misc b/changelog.d/8074.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8074.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8075.misc b/changelog.d/8075.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8075.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8076.misc b/changelog.d/8076.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8076.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8081.bugfix b/changelog.d/8081.bugfix deleted file mode 100644 index 9ebcbf5b8448..000000000000 --- a/changelog.d/8081.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix `Re-starting finished log context PUT-nnnn` warning when event persistence failed. diff --git a/changelog.d/8085.misc b/changelog.d/8085.misc deleted file mode 100644 index c3da1e297ccb..000000000000 --- a/changelog.d/8085.misc +++ /dev/null @@ -1 +0,0 @@ -Remove some unused database functions. diff --git a/changelog.d/8087.misc b/changelog.d/8087.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8087.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8090.misc b/changelog.d/8090.misc deleted file mode 100644 index 725a03ae881b..000000000000 --- a/changelog.d/8090.misc +++ /dev/null @@ -1 +0,0 @@ -Add type hints to `synapse.handlers.room`. diff --git a/changelog.d/8092.feature b/changelog.d/8092.feature deleted file mode 100644 index 813e6d0903d9..000000000000 --- a/changelog.d/8092.feature +++ /dev/null @@ -1 +0,0 @@ -Add support for shadow-banning users (ignoring any message send requests). diff --git a/changelog.d/8093.misc b/changelog.d/8093.misc deleted file mode 100644 index 80045dde1af1..000000000000 --- a/changelog.d/8093.misc +++ /dev/null @@ -1 +0,0 @@ -Return the previous stream token if a non-member event is a duplicate. diff --git a/changelog.d/8095.feature b/changelog.d/8095.feature deleted file mode 100644 index 813e6d0903d9..000000000000 --- a/changelog.d/8095.feature +++ /dev/null @@ -1 +0,0 @@ -Add support for shadow-banning users (ignoring any message send requests). diff --git a/changelog.d/8100.misc b/changelog.d/8100.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8100.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8101.bugfix b/changelog.d/8101.bugfix deleted file mode 100644 index 703bba4234e8..000000000000 --- a/changelog.d/8101.bugfix +++ /dev/null @@ -1 +0,0 @@ -Synapse now correctly enforces the valid characters in the `client_secret` parameter used in various endpoints. diff --git a/changelog.d/8104.bugfix b/changelog.d/8104.bugfix deleted file mode 100644 index e32e2996c447..000000000000 --- a/changelog.d/8104.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a bug introduced in v1.7.2 impacting message retention policies that would allow federated homeservers to dictate a retention period that's lower than the configured minimum allowed duration in the configuration file. diff --git a/changelog.d/8106.bugfix b/changelog.d/8106.bugfix deleted file mode 100644 index c46c60448f00..000000000000 --- a/changelog.d/8106.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a long-standing bug where invalid JSON would be accepted by Synapse. diff --git a/changelog.d/8107.feature b/changelog.d/8107.feature deleted file mode 100644 index 2e5127477d5a..000000000000 --- a/changelog.d/8107.feature +++ /dev/null @@ -1 +0,0 @@ -Use the default template file when its equivalent is not found in a custom template directory. \ No newline at end of file diff --git a/changelog.d/8110.bugfix b/changelog.d/8110.bugfix deleted file mode 100644 index 5269a232e107..000000000000 --- a/changelog.d/8110.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a bug introduced in Synapse 1.12.0 which could cause `/sync` requests to fail with a 404 if you had a very old outstanding room invite. diff --git a/changelog.d/8111.doc b/changelog.d/8111.doc deleted file mode 100644 index d3f743545285..000000000000 --- a/changelog.d/8111.doc +++ /dev/null @@ -1 +0,0 @@ -Link to matrix-synapse-rest-password-provider in the password provider documentation. diff --git a/changelog.d/8112.misc b/changelog.d/8112.misc deleted file mode 100644 index 80045dde1af1..000000000000 --- a/changelog.d/8112.misc +++ /dev/null @@ -1 +0,0 @@ -Return the previous stream token if a non-member event is a duplicate. diff --git a/changelog.d/8113.misc b/changelog.d/8113.misc deleted file mode 100644 index 00bec4f8ef92..000000000000 --- a/changelog.d/8113.misc +++ /dev/null @@ -1 +0,0 @@ -Separate `get_current_token` into two since there are two different use cases for it. diff --git a/changelog.d/8116.feature b/changelog.d/8116.feature deleted file mode 100644 index b1eaf1e78a71..000000000000 --- a/changelog.d/8116.feature +++ /dev/null @@ -1 +0,0 @@ -Iteratively encode JSON to avoid blocking the reactor. diff --git a/changelog.d/8119.misc b/changelog.d/8119.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8119.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8120.doc b/changelog.d/8120.doc deleted file mode 100644 index 877ef79fd246..000000000000 --- a/changelog.d/8120.doc +++ /dev/null @@ -1 +0,0 @@ -Updated documentation to note that Synapse does not follow `HTTP 308` redirects due to an upstream library not supporting them. Contributed by Ryan Cole. \ No newline at end of file diff --git a/changelog.d/8121.misc b/changelog.d/8121.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8121.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8123.misc b/changelog.d/8123.misc deleted file mode 100644 index 724512289685..000000000000 --- a/changelog.d/8123.misc +++ /dev/null @@ -1 +0,0 @@ -Remove `ChainedIdGenerator`. diff --git a/changelog.d/8124.misc b/changelog.d/8124.misc deleted file mode 100644 index 9fac71020532..000000000000 --- a/changelog.d/8124.misc +++ /dev/null @@ -1 +0,0 @@ -Reduce the amount of whitespace in JSON stored and sent in responses. diff --git a/changelog.d/8127.misc b/changelog.d/8127.misc deleted file mode 100644 index cb557122aaa1..000000000000 --- a/changelog.d/8127.misc +++ /dev/null @@ -1 +0,0 @@ -Add type hints to `synapse.storage.database`. diff --git a/changelog.d/8129.bugfix b/changelog.d/8129.bugfix deleted file mode 100644 index 79eae9db6bd9..000000000000 --- a/changelog.d/8129.bugfix +++ /dev/null @@ -1 +0,0 @@ -Return a proper error code when the rooms of an invalid group are requested. diff --git a/changelog.d/8130.misc b/changelog.d/8130.misc deleted file mode 100644 index 7944c09adee0..000000000000 --- a/changelog.d/8130.misc +++ /dev/null @@ -1 +0,0 @@ -Update the test federation client to handle streaming responses. diff --git a/changelog.d/8131.bugfix b/changelog.d/8131.bugfix deleted file mode 100644 index 5110f235d15f..000000000000 --- a/changelog.d/8131.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a bug which could cause a leaked postgres connection if synapse was set to daemonize. diff --git a/changelog.d/8132.misc b/changelog.d/8132.misc deleted file mode 100644 index 7afa267c691d..000000000000 --- a/changelog.d/8132.misc +++ /dev/null @@ -1 +0,0 @@ -Micro-optimisations to get_auth_chain_ids. diff --git a/changelog.d/8133.misc b/changelog.d/8133.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8133.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8135.bugfix b/changelog.d/8135.bugfix deleted file mode 100644 index 9d5c60ea00e3..000000000000 --- a/changelog.d/8135.bugfix +++ /dev/null @@ -1 +0,0 @@ -Clarify the error code if a user tries to register with a numeric ID. This bug was introduced in v1.15.0. diff --git a/changelog.d/8139.bugfix b/changelog.d/8139.bugfix deleted file mode 100644 index 21f65d87b7d5..000000000000 --- a/changelog.d/8139.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixes a bug where appservices with ratelimiting disabled would still be ratelimited when joining rooms. This bug was introduced in v1.19.0. diff --git a/changelog.d/8140.misc b/changelog.d/8140.misc deleted file mode 100644 index 78d8834328a5..000000000000 --- a/changelog.d/8140.misc +++ /dev/null @@ -1 +0,0 @@ -Add type hints to `synapse.state`. diff --git a/changelog.d/8142.feature b/changelog.d/8142.feature deleted file mode 100644 index 813e6d0903d9..000000000000 --- a/changelog.d/8142.feature +++ /dev/null @@ -1 +0,0 @@ -Add support for shadow-banning users (ignoring any message send requests). diff --git a/changelog.d/8144.docker b/changelog.d/8144.docker deleted file mode 100644 index 9bb5881fa8f3..000000000000 --- a/changelog.d/8144.docker +++ /dev/null @@ -1 +0,0 @@ -Fix builds of the Docker image on non-x86 platforms. diff --git a/changelog.d/8147.docker b/changelog.d/8147.docker deleted file mode 100644 index dcc951d8f5eb..000000000000 --- a/changelog.d/8147.docker +++ /dev/null @@ -1 +0,0 @@ -Added curl for healthcheck support and readme updates for the change. Contributed by @maquis196. diff --git a/changelog.d/8152.feature b/changelog.d/8152.feature deleted file mode 100644 index 813e6d0903d9..000000000000 --- a/changelog.d/8152.feature +++ /dev/null @@ -1 +0,0 @@ -Add support for shadow-banning users (ignoring any message send requests). diff --git a/changelog.d/8156.misc b/changelog.d/8156.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8156.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8157.feature b/changelog.d/8157.feature deleted file mode 100644 index 813e6d0903d9..000000000000 --- a/changelog.d/8157.feature +++ /dev/null @@ -1 +0,0 @@ -Add support for shadow-banning users (ignoring any message send requests). diff --git a/changelog.d/8158.feature b/changelog.d/8158.feature deleted file mode 100644 index 47c4c39167ed..000000000000 --- a/changelog.d/8158.feature +++ /dev/null @@ -1 +0,0 @@ - Add support for shadow-banning users (ignoring any message send requests). diff --git a/changelog.d/8161.misc b/changelog.d/8161.misc deleted file mode 100644 index 89ff274de3e3..000000000000 --- a/changelog.d/8161.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor `StreamIdGenerator` and `MultiWriterIdGenerator` to have the same interface. diff --git a/changelog.d/8162.misc b/changelog.d/8162.misc deleted file mode 100644 index e26764dea15a..000000000000 --- a/changelog.d/8162.misc +++ /dev/null @@ -1 +0,0 @@ - Convert various parts of the codebase to async/await. diff --git a/changelog.d/8163.misc b/changelog.d/8163.misc deleted file mode 100644 index b3ec08855b49..000000000000 --- a/changelog.d/8163.misc +++ /dev/null @@ -1 +0,0 @@ -Add filter `name` to the `/users` admin API, which filters by user ID or displayname. Contributed by Awesome Technologies Innovationslabor GmbH. diff --git a/changelog.d/8164.misc b/changelog.d/8164.misc deleted file mode 100644 index 55bc079cdba8..000000000000 --- a/changelog.d/8164.misc +++ /dev/null @@ -1 +0,0 @@ -Add functions to `MultiWriterIdGen` used by events stream. diff --git a/changelog.d/8166.misc b/changelog.d/8166.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8166.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8167.misc b/changelog.d/8167.misc deleted file mode 100644 index e2ed9be7a41b..000000000000 --- a/changelog.d/8167.misc +++ /dev/null @@ -1 +0,0 @@ -Fix tests that were broken due to the merge of 1.19.1. diff --git a/changelog.d/8168.misc b/changelog.d/8168.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8168.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8171.misc b/changelog.d/8171.misc deleted file mode 100644 index cafbf23d836f..000000000000 --- a/changelog.d/8171.misc +++ /dev/null @@ -1 +0,0 @@ -Make `SlavedIdTracker.advance` have the same interface as `MultiWriterIDGenerator`. diff --git a/changelog.d/8173.misc b/changelog.d/8173.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8173.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8174.misc b/changelog.d/8174.misc deleted file mode 100644 index a39e9eab46cd..000000000000 --- a/changelog.d/8174.misc +++ /dev/null @@ -1 +0,0 @@ -Remove unused `is_guest` parameter from, and add safeguard to, `MessageHandler.get_room_data`. \ No newline at end of file diff --git a/changelog.d/8175.misc b/changelog.d/8175.misc deleted file mode 100644 index 28af294dcf6c..000000000000 --- a/changelog.d/8175.misc +++ /dev/null @@ -1 +0,0 @@ -Standardize the mypy configuration. diff --git a/changelog.d/8176.feature b/changelog.d/8176.feature deleted file mode 100644 index 813e6d0903d9..000000000000 --- a/changelog.d/8176.feature +++ /dev/null @@ -1 +0,0 @@ -Add support for shadow-banning users (ignoring any message send requests). diff --git a/changelog.d/8179.misc b/changelog.d/8179.misc deleted file mode 100644 index 55bc079cdba8..000000000000 --- a/changelog.d/8179.misc +++ /dev/null @@ -1 +0,0 @@ -Add functions to `MultiWriterIdGen` used by events stream. diff --git a/changelog.d/8181.misc b/changelog.d/8181.misc deleted file mode 100644 index a39e9eab46cd..000000000000 --- a/changelog.d/8181.misc +++ /dev/null @@ -1 +0,0 @@ -Remove unused `is_guest` parameter from, and add safeguard to, `MessageHandler.get_room_data`. \ No newline at end of file diff --git a/changelog.d/8182.misc b/changelog.d/8182.misc deleted file mode 100644 index 4fcdf1c45213..000000000000 --- a/changelog.d/8182.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor some of `LoginRestServlet`'s helper methods, and move them to `AuthHandler` for easier reuse. \ No newline at end of file diff --git a/changelog.d/8183.misc b/changelog.d/8183.misc deleted file mode 100644 index 78d8834328a5..000000000000 --- a/changelog.d/8183.misc +++ /dev/null @@ -1 +0,0 @@ -Add type hints to `synapse.state`. diff --git a/changelog.d/8187.misc b/changelog.d/8187.misc deleted file mode 100644 index cb557122aaa1..000000000000 --- a/changelog.d/8187.misc +++ /dev/null @@ -1 +0,0 @@ -Add type hints to `synapse.storage.database`. diff --git a/changelog.d/8189.doc b/changelog.d/8189.doc deleted file mode 100644 index 800ff89dc58f..000000000000 --- a/changelog.d/8189.doc +++ /dev/null @@ -1 +0,0 @@ -Explain better what GDPR-erased means when deactivating a user. diff --git a/changelog.d/8190.bugfix b/changelog.d/8190.bugfix deleted file mode 100644 index bf6717ab28d9..000000000000 --- a/changelog.d/8190.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix logging in via OpenID Connect with a provider that uses integer user IDs. diff --git a/changelog.d/8191.misc b/changelog.d/8191.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8191.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8192.misc b/changelog.d/8192.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8192.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8193.misc b/changelog.d/8193.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8193.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8194.misc b/changelog.d/8194.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8194.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8195.misc b/changelog.d/8195.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8195.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8196.misc b/changelog.d/8196.misc deleted file mode 100644 index c42baf0e56c6..000000000000 --- a/changelog.d/8196.misc +++ /dev/null @@ -1 +0,0 @@ -Fix `wait_for_stream_position` to allow multiple waiters on same stream ID. diff --git a/changelog.d/8197.misc b/changelog.d/8197.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8197.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8198.feature b/changelog.d/8198.feature deleted file mode 100644 index c4401288bf36..000000000000 --- a/changelog.d/8198.feature +++ /dev/null @@ -1 +0,0 @@ -Optimise `/federation/v1/user/devices/` API by only returning devices with encryption keys. diff --git a/changelog.d/8199.misc b/changelog.d/8199.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8199.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8200.misc b/changelog.d/8200.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8200.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8201.misc b/changelog.d/8201.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8201.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8202.misc b/changelog.d/8202.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8202.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8203.misc b/changelog.d/8203.misc deleted file mode 100644 index 9fe2224aaac2..000000000000 --- a/changelog.d/8203.misc +++ /dev/null @@ -1 +0,0 @@ -Make `MultiWriterIDGenerator` work for streams that use negative values. diff --git a/changelog.d/8204.misc b/changelog.d/8204.misc deleted file mode 100644 index 979c8b227bbc..000000000000 --- a/changelog.d/8204.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor queries for device keys and cross-signatures. diff --git a/changelog.d/8205.misc b/changelog.d/8205.misc deleted file mode 100644 index fb8fd832789a..000000000000 --- a/changelog.d/8205.misc +++ /dev/null @@ -1 +0,0 @@ - Refactor queries for device keys and cross-signatures. diff --git a/changelog.d/8207.misc b/changelog.d/8207.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8207.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8213.misc b/changelog.d/8213.misc deleted file mode 100644 index dfe4c03171d6..000000000000 --- a/changelog.d/8213.misc +++ /dev/null @@ -1 +0,0 @@ -Convert various parts of the codebase to async/await. diff --git a/changelog.d/8214.misc b/changelog.d/8214.misc deleted file mode 100644 index e26764dea15a..000000000000 --- a/changelog.d/8214.misc +++ /dev/null @@ -1 +0,0 @@ - Convert various parts of the codebase to async/await. diff --git a/changelog.d/8222.misc b/changelog.d/8222.misc deleted file mode 100644 index 979c8b227bbc..000000000000 --- a/changelog.d/8222.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor queries for device keys and cross-signatures. diff --git a/changelog.d/8223.bugfix b/changelog.d/8223.bugfix deleted file mode 100644 index 60655ce3e11f..000000000000 --- a/changelog.d/8223.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixes a longstanding bug where user directory updates could break when unexpected profile data was included in events. diff --git a/changelog.d/8224.misc b/changelog.d/8224.misc deleted file mode 100644 index 979c8b227bbc..000000000000 --- a/changelog.d/8224.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor queries for device keys and cross-signatures. diff --git a/changelog.d/8225.misc b/changelog.d/8225.misc deleted file mode 100644 index 979c8b227bbc..000000000000 --- a/changelog.d/8225.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor queries for device keys and cross-signatures. diff --git a/changelog.d/8226.bugfix b/changelog.d/8226.bugfix deleted file mode 100644 index 60bdff576db5..000000000000 --- a/changelog.d/8226.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a longstanding bug where stats updates could break when unexpected profile data was included in events. diff --git a/changelog.d/8231.misc b/changelog.d/8231.misc deleted file mode 100644 index 979c8b227bbc..000000000000 --- a/changelog.d/8231.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor queries for device keys and cross-signatures. diff --git a/changelog.d/8232.misc b/changelog.d/8232.misc deleted file mode 100644 index 3a7a352c4f6d..000000000000 --- a/changelog.d/8232.misc +++ /dev/null @@ -1 +0,0 @@ -Add type hints to `StreamStore`. diff --git a/changelog.d/8233.misc b/changelog.d/8233.misc deleted file mode 100644 index 979c8b227bbc..000000000000 --- a/changelog.d/8233.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor queries for device keys and cross-signatures. diff --git a/changelog.d/8234.misc b/changelog.d/8234.misc deleted file mode 100644 index 979c8b227bbc..000000000000 --- a/changelog.d/8234.misc +++ /dev/null @@ -1 +0,0 @@ -Refactor queries for device keys and cross-signatures. diff --git a/changelog.d/8235.misc b/changelog.d/8235.misc deleted file mode 100644 index 3a7a352c4f6d..000000000000 --- a/changelog.d/8235.misc +++ /dev/null @@ -1 +0,0 @@ -Add type hints to `StreamStore`. diff --git a/changelog.d/8237.misc b/changelog.d/8237.misc deleted file mode 100644 index 29d946cde6e1..000000000000 --- a/changelog.d/8237.misc +++ /dev/null @@ -1 +0,0 @@ -Fix type hints in `SyncHandler`. diff --git a/changelog.d/8240.misc b/changelog.d/8240.misc deleted file mode 100644 index acfbd89e2402..000000000000 --- a/changelog.d/8240.misc +++ /dev/null @@ -1 +0,0 @@ -Fix type hints for functions decorated with `@cached`. diff --git a/changelog.d/8241.misc b/changelog.d/8241.misc deleted file mode 100644 index cb557122aaa1..000000000000 --- a/changelog.d/8241.misc +++ /dev/null @@ -1 +0,0 @@ -Add type hints to `synapse.storage.database`. diff --git a/changelog.d/8242.feature b/changelog.d/8242.feature deleted file mode 100644 index f6891e360dff..000000000000 --- a/changelog.d/8242.feature +++ /dev/null @@ -1 +0,0 @@ -Back out experimental support for sharding event persister. **PLEASE REMOVE THIS LINE FROM THE FINAL CHANGELOG** diff --git a/changelog.d/8244.misc b/changelog.d/8244.misc deleted file mode 100644 index e650072223d5..000000000000 --- a/changelog.d/8244.misc +++ /dev/null @@ -1 +0,0 @@ -Add type hints to pagination, initial sync and events handlers. diff --git a/changelog.d/8245.misc b/changelog.d/8245.misc deleted file mode 100644 index 545c4c426587..000000000000 --- a/changelog.d/8245.misc +++ /dev/null @@ -1 +0,0 @@ -Remove obsolete `order` field from federation send queues. diff --git a/changelog.d/8249.misc b/changelog.d/8249.misc deleted file mode 100644 index 6a42e8a4e6f9..000000000000 --- a/changelog.d/8249.misc +++ /dev/null @@ -1 +0,0 @@ -Stop sub-classing from object. diff --git a/changelog.d/8252.feature b/changelog.d/8252.feature deleted file mode 100644 index 7e69b7242943..000000000000 --- a/changelog.d/8252.feature +++ /dev/null @@ -1 +0,0 @@ -Use the default template file when its equivalent is not found in a custom template directory. diff --git a/changelog.d/8254.feature b/changelog.d/8254.feature deleted file mode 100644 index feb02be234bf..000000000000 --- a/changelog.d/8254.feature +++ /dev/null @@ -1 +0,0 @@ -Add unread messages count to sync responses, as specified in [MSC2654](https://github.com/matrix-org/matrix-doc/pull/2654). diff --git a/changelog.d/8264.misc b/changelog.d/8264.misc deleted file mode 100644 index 600b1756552d..000000000000 --- a/changelog.d/8264.misc +++ /dev/null @@ -1 +0,0 @@ -Add more logging to debug slow startup. diff --git a/changelog.d/8266.misc b/changelog.d/8266.misc deleted file mode 100644 index e7c899bea882..000000000000 --- a/changelog.d/8266.misc +++ /dev/null @@ -1 +0,0 @@ -Do not attempt to upgrade upgrade database schema on worker processes. diff --git a/changelog.d/8270.feature b/changelog.d/8270.feature deleted file mode 100644 index feb02be234bf..000000000000 --- a/changelog.d/8270.feature +++ /dev/null @@ -1 +0,0 @@ -Add unread messages count to sync responses, as specified in [MSC2654](https://github.com/matrix-org/matrix-doc/pull/2654). diff --git a/changelog.d/8271.bugfix b/changelog.d/8271.bugfix deleted file mode 100644 index b75f07b03c8a..000000000000 --- a/changelog.d/8271.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix slow start times for large servers by removing a table scan of the `users` table from startup code. diff --git a/changelog.d/8274.feature b/changelog.d/8274.feature deleted file mode 100644 index feb02be234bf..000000000000 --- a/changelog.d/8274.feature +++ /dev/null @@ -1 +0,0 @@ -Add unread messages count to sync responses, as specified in [MSC2654](https://github.com/matrix-org/matrix-doc/pull/2654). diff --git a/changelog.d/8276.misc b/changelog.d/8276.misc deleted file mode 100644 index e7c899bea882..000000000000 --- a/changelog.d/8276.misc +++ /dev/null @@ -1 +0,0 @@ -Do not attempt to upgrade upgrade database schema on worker processes. diff --git a/synapse/__init__.py b/synapse/__init__.py index 1282d19b3c74..f4aca64be819 100644 --- a/synapse/__init__.py +++ b/synapse/__init__.py @@ -48,7 +48,7 @@ except ImportError: pass -__version__ = "1.19.1" +__version__ = "1.20.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