diff options
author | Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> | 2021-11-16 13:16:43 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-16 13:16:43 +0000 |
commit | 6e084b62b88cf3d18646a036b7079c8a899349ab (patch) | |
tree | 671384e707c1a48454ee3efdf50ee645cf3cf85a | |
parent | Run _upgrade_existing_database on workers if at current schema_version (#11346) (diff) | |
download | synapse-6e084b62b88cf3d18646a036b7079c8a899349ab.tar.xz |
Rename `remove_deleted_devices_from_device_inbox` to ensure it is always run (#11353)
Co-authored-by: reivilibre <oliverw@matrix.org>
-rw-r--r-- | changelog.d/11353.misc | 1 | ||||
-rw-r--r-- | synapse/storage/schema/main/delta/65/06remove_deleted_devices_from_device_inbox.sql (renamed from synapse/storage/schema/main/delta/65/05remove_deleted_devices_from_device_inbox.sql) | 14 |
2 files changed, 14 insertions, 1 deletions
diff --git a/changelog.d/11353.misc b/changelog.d/11353.misc new file mode 100644 index 0000000000..fa96dae919 --- /dev/null +++ b/changelog.d/11353.misc @@ -0,0 +1 @@ +Fix an issue which prevented the 'remove deleted devices from `device_inbox` column' background process from running when updating from a recent Synapse version. \ No newline at end of file diff --git a/synapse/storage/schema/main/delta/65/05remove_deleted_devices_from_device_inbox.sql b/synapse/storage/schema/main/delta/65/06remove_deleted_devices_from_device_inbox.sql index 076179123d..82f6408b36 100644 --- a/synapse/storage/schema/main/delta/65/05remove_deleted_devices_from_device_inbox.sql +++ b/synapse/storage/schema/main/delta/65/06remove_deleted_devices_from_device_inbox.sql @@ -18,5 +18,17 @@ -- when a device was deleted using Synapse earlier than 1.47.0. -- This runs as background task, but may take a bit to finish. +-- Remove any existing instances of this job running. It's OK to stop and restart this job, +-- as it's just deleting entries from a table - no progress will be lost. +-- +-- This is necessary due a similar migration running the job accidentally +-- being included in schema version 64 during v1.47.0rc1,rc2. If a +-- homeserver had updated from Synapse <=v1.45.0 (schema version <=64), +-- then they would have started running this background update already. +-- If that update was still running, then simply inserting it again would +-- cause an SQL failure. So we effectively do an "upsert" here instead. + +DELETE FROM background_updates WHERE update_name = 'remove_deleted_devices_from_device_inbox'; + INSERT INTO background_updates (ordering, update_name, progress_json) VALUES - (6505, 'remove_deleted_devices_from_device_inbox', '{}'); + (6506, 'remove_deleted_devices_from_device_inbox', '{}'); |