summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.md9
-rw-r--r--debian/changelog6
-rw-r--r--pyproject.toml2
-rw-r--r--synapse/storage/databases/state/deletion.py14
4 files changed, 28 insertions, 3 deletions
diff --git a/CHANGES.md b/CHANGES.md

index 051ab130b2..3c92bedda3 100644 --- a/CHANGES.md +++ b/CHANGES.md
@@ -1,3 +1,12 @@ +# Synapse 1.124.0rc2 (2025-02-05) + +### Bugfixes + +- Fix regression where persisting events in some rooms could fail after a previous unclean shutdown. Introduced in v1.124.0rc1. ([\#18137](https://github.com/element-hq/synapse/issues/18137)) + + + + # Synapse 1.124.0rc1 (2025-02-04) ### Bugfixes diff --git a/debian/changelog b/debian/changelog
index 0b6d50daaa..8c84eecb20 100644 --- a/debian/changelog +++ b/debian/changelog
@@ -1,3 +1,9 @@ +matrix-synapse-py3 (1.124.0~rc2) stable; urgency=medium + + * New Synapse release 1.124.0rc2. + + -- Synapse Packaging team <packages@matrix.org> Wed, 05 Feb 2025 16:35:53 +0000 + matrix-synapse-py3 (1.124.0~rc1) stable; urgency=medium * New Synapse release 1.124.0rc1. diff --git a/pyproject.toml b/pyproject.toml
index 8febdc4c23..3f577a1973 100644 --- a/pyproject.toml +++ b/pyproject.toml
@@ -97,7 +97,7 @@ module-name = "synapse.synapse_rust" [tool.poetry] name = "matrix-synapse" -version = "1.124.0rc1" +version = "1.124.0rc2" description = "Homeserver for the Matrix decentralised comms protocol" authors = ["Matrix.org Team and Contributors <packages@matrix.org>"] license = "AGPL-3.0-or-later" diff --git a/synapse/storage/databases/state/deletion.py b/synapse/storage/databases/state/deletion.py
index 4853e5aa2f..d0949261f2 100644 --- a/synapse/storage/databases/state/deletion.py +++ b/synapse/storage/databases/state/deletion.py
@@ -95,8 +95,18 @@ class StateDeletionDataStore: self.db_pool = database self._instance_name = hs.get_instance_name() - # TODO: Clear from `state_groups_persisting` any holdovers from previous - # running instance. + with db_conn.cursor(txn_name="_clear_existing_persising") as txn: + self._clear_existing_persising(txn) + + def _clear_existing_persising(self, txn: LoggingTransaction) -> None: + """On startup we clear any entries in `state_groups_persisting` that + match our instance name, in case of a previous unclean shutdown""" + + self.db_pool.simple_delete_txn( + txn, + table="state_groups_persisting", + keyvalues={"instance_name": self._instance_name}, + ) async def check_state_groups_and_bump_deletion( self, state_groups: AbstractSet[int]