Skip to content

Commit 15b93c8

Browse files
Avoid checking a stale relationship (#2949)
Avoid checking a stale relationship Reviewed-by: gemini-code-assist[bot] Reviewed-by: Nikola Forró Reviewed-by: Maja Massarini
2 parents fabffea + 2052492 commit 15b93c8

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

packit_service/models.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3429,6 +3429,8 @@ def create(cls, run_model: "PipelineModel", ranch: str) -> "TFTTestRunGroupModel
34293429
test_run_group = cls()
34303430
test_run_group.ranch = ranch
34313431
session.add(test_run_group)
3432+
# Flush to get test_run_group.id before using it
3433+
session.flush()
34323434

34333435
# lock the run_model in the DB by using SELECT ... FOR UPDATE
34343436
# all other workers accessing this run_model will block here
@@ -3441,18 +3443,20 @@ def create(cls, run_model: "PipelineModel", ranch: str) -> "TFTTestRunGroupModel
34413443
logger.warning(f"PipelineModel with id={run_model.id} not found in DB.")
34423444
return test_run_group
34433445

3444-
if locked_run_model.test_run_group:
3446+
# Check test_run_group_id directly to avoid stale relationship cache.
3447+
# The relationship might not be loaded or might be stale from a different session.
3448+
if locked_run_model.test_run_group_id:
34453449
# Clone run model
34463450
new_run_model = PipelineModel()
34473451
new_run_model.project_event = locked_run_model.project_event
34483452
new_run_model.package_name = locked_run_model.package_name
34493453
new_run_model.srpm_build = locked_run_model.srpm_build
34503454
new_run_model.copr_build_group = locked_run_model.copr_build_group
34513455
new_run_model.koji_build_group = locked_run_model.koji_build_group
3452-
new_run_model.test_run_group = test_run_group
3456+
new_run_model.test_run_group_id = test_run_group.id
34533457
session.add(new_run_model)
34543458
else:
3455-
locked_run_model.test_run_group = test_run_group
3459+
locked_run_model.test_run_group_id = test_run_group.id
34563460
session.add(locked_run_model)
34573461

34583462
return test_run_group

0 commit comments

Comments
 (0)