From 35aa4af11218487bff80e07cc03d5ba4176cde5c Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 13 Sep 2023 17:43:55 +0000 Subject: [PATCH] builds: Delete builds one step at a time Creating a lot of sub-tasks caused some SQL statements to be executed outside its transaction and the connection pool to starve. Signed-off-by: Michael Tremer --- src/buildservice/builds.py | 11 +++-------- src/buildservice/jobs.py | 7 ++----- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/buildservice/builds.py b/src/buildservice/builds.py index 3f1b3886..ef26c989 100644 --- a/src/buildservice/builds.py +++ b/src/buildservice/builds.py @@ -424,9 +424,7 @@ class Build(base.DataObject): # Delete all jobs async with asyncio.TaskGroup() as tasks: for job in self._jobs: - tasks.create_task( - job.delete(user=user), - ) + await job.delete(user=user) # Mark as deleted self._set_attribute_now("deleted_at") @@ -1397,11 +1395,8 @@ class Group(base.DataObject): async def delete(self, user=None): # Delete all builds in this group - async with asyncio.TaskGroup() as tasks: - for build in self.builds: - tasks.create_task( - build.delete(user=user), - ) + for build in self.builds: + await build.delete(user=user) # Mark as deleted self._set_attribute_now("deleted_at") diff --git a/src/buildservice/jobs.py b/src/buildservice/jobs.py index 08a6720c..84b240eb 100644 --- a/src/buildservice/jobs.py +++ b/src/buildservice/jobs.py @@ -745,11 +745,8 @@ class Job(base.DataObject): Deletes a job """ # Delete all binary packages - async with asyncio.TaskGroup() as tasks: - for pkg in self.packages: - tasks.create_task( - pkg.delete(user=user), - ) + for pkg in self.packages: + await pkg.delete(user=user) # Mark as deleted self._set_attribute_now("deleted_at") -- 2.47.2