From: Michael Tremer Date: Wed, 13 Sep 2023 17:43:55 +0000 (+0000) Subject: builds: Delete builds one step at a time X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35aa4af11218487bff80e07cc03d5ba4176cde5c;p=pbs.git 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 --- 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")