From 50bcc5b94828fe5648b1c41ec8d5a9a522978b43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Zaoral?= Date: Wed, 23 Aug 2023 09:30:09 +0200 Subject: [PATCH] hub: do not call save twice in Task.save() ... to ensure that the db operation is atomic. Fixes: c5d7f8e68a24df08a5425206ae686c34f0ebf135 ("Fix calculating the number of task's subtasks in new Django versions") Related: https://github.com/release-engineering/kobo/pull/217#discussion_r1300849327 --- kobo/hub/models.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kobo/hub/models.py b/kobo/hub/models.py index e7055bed..374ca873 100644 --- a/kobo/hub/models.py +++ b/kobo/hub/models.py @@ -606,9 +606,8 @@ def __str__(self): return u"#%s [method: %s, state: %s, worker: %s]" % (self.id, self.method, self.get_state_display(), self.worker) def save(self, *args, **kwargs): - # save to db to precalculate subtask counts and obtain an ID (on insert) for stdout and traceback - super(self.__class__, self).save() - self.subtask_count = self.subtasks().count() + if self.id is not None: + self.subtask_count = self.subtasks().count() super(self.__class__, self).save() self.logs.save() if self.parent: