summary refs log tree commit diff
path: root/synapse/storage/databases/state/deletion.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2025-02-05 18:23:59 +0000
committerErik Johnston <erik@matrix.org>2025-02-05 18:23:59 +0000
commit29534e7d0a01c919f2143f6ab3615f9910a77a29 (patch)
tree7504148ed0828e03dd812320613430a0d743ee0f /synapse/storage/databases/state/deletion.py
parentmake dual licensing explicit (#18134) (diff)
parent1.124.0rc2 (diff)
downloadsynapse-29534e7d0a01c919f2143f6ab3615f9910a77a29.tar.xz
Merge branch 'release-v1.124' into develop
Diffstat (limited to 'synapse/storage/databases/state/deletion.py')
-rw-r--r--synapse/storage/databases/state/deletion.py14
1 files changed, 12 insertions, 2 deletions
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]