From e3d9b15cc687d620ba4f3201680c6fa83c21359d Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 6 Aug 2026 18:11:32 +0100 Subject: [PATCH] Cleanup cancelled tasks as well (#20068) Rather than just completed and failed tasks. --- changelog.d/20068.misc | 1 + synapse/util/task_scheduler.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 changelog.d/20068.misc diff --git a/changelog.d/20068.misc b/changelog.d/20068.misc new file mode 100644 index 0000000000..cb2766e80a --- /dev/null +++ b/changelog.d/20068.misc @@ -0,0 +1 @@ +Routinely purge old cancelled tasks from the database. diff --git a/synapse/util/task_scheduler.py b/synapse/util/task_scheduler.py index c1790fd3ae..c01ddf7339 100644 --- a/synapse/util/task_scheduler.py +++ b/synapse/util/task_scheduler.py @@ -400,10 +400,10 @@ class TaskScheduler: """Clean old complete or failed jobs to avoid clutter the DB.""" now = self._clock.time_msec() for task in await self._store.get_scheduled_tasks( - statuses=[TaskStatus.FAILED, TaskStatus.COMPLETE], + statuses=[TaskStatus.FAILED, TaskStatus.CANCELLED, TaskStatus.COMPLETE], max_timestamp=now - TaskScheduler.KEEP_TASKS_FOR_MS, ): - # FAILED and COMPLETE tasks should never be running + # FAILED, CANCELLED and COMPLETE tasks should never be running assert task.id not in self._running_tasks await self._store.delete_scheduled_task(task.id)