From 47fe6df0134441211588c0bf8fc8f1f18c489c38 Mon Sep 17 00:00:00 2001
From: Jason Little <realtyem@gmail.com>
Date: Wed, 30 Oct 2024 21:21:22 -0500
Subject: [PATCH] Remove `Generator` in `_prune_old_outbound_device_pokes`
 (#17814)

Context: https://github.com/matrix-org/synapse/issues/15439
(https://github.com/element-hq/synapse/issues/15439)

Also see discussion in https://github.com/element-hq/synapse/pull/17813
---
 changelog.d/17814.bugfix                  | 1 +
 synapse/storage/databases/main/devices.py | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)
 create mode 100644 changelog.d/17814.bugfix

diff --git a/changelog.d/17814.bugfix b/changelog.d/17814.bugfix
new file mode 100644
index 0000000000..5dd276709b
--- /dev/null
+++ b/changelog.d/17814.bugfix
@@ -0,0 +1 @@
+Avoid lost data on some database query retries.
diff --git a/synapse/storage/databases/main/devices.py b/synapse/storage/databases/main/devices.py
index a83df4075a..8088943253 100644
--- a/synapse/storage/databases/main/devices.py
+++ b/synapse/storage/databases/main/devices.py
@@ -1422,7 +1422,7 @@ class DeviceWorkerStore(RoomMemberWorkerStore, EndToEndKeyWorkerStore):
                 DELETE FROM device_lists_outbound_last_success
                 WHERE destination = ? AND user_id = ?
             """
-            txn.execute_batch(sql, ((row[0], row[1]) for row in rows))
+            txn.execute_batch(sql, [(row[0], row[1]) for row in rows])
 
             logger.info("Pruned %d device list outbound pokes", count)
 
-- 
GitLab