Skip to content

Commit eb4c9f9

Browse files
committed
debug serveur status routing of scoring
1 parent 932ef1a commit eb4c9f9

1 file changed

Lines changed: 118 additions & 0 deletions

File tree

src/apps/competitions/tasks.py

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,19 @@
119119

120120

121121
def _send_to_compute_worker(submission, is_scoring, target_group=None):
122+
<<<<<<< HEAD
122123
logger.info("Site Worker ==> STARTING")
124+
=======
125+
logger.info(
126+
"Site Worker ==> STARTING submission_id=%s is_scoring=%s "
127+
"target_group_param=%s submission.queue=%s parent=%s",
128+
submission.pk,
129+
is_scoring,
130+
getattr(target_group, "pk", None),
131+
getattr(getattr(submission, "queue", None), "name", None),
132+
getattr(submission.parent, "pk", None) if submission.parent else None,
133+
)
134+
>>>>>>> 0dc476f1 (debug serveur status routing of scoring)
123135

124136
run_args = {
125137
"user_pk": submission.owner.pk,
@@ -285,6 +297,7 @@ def _send_to_compute_worker(submission, is_scoring, target_group=None):
285297
target_vhost = None
286298
try:
287299
if target_group:
300+
<<<<<<< HEAD
288301
if getattr(target_group, 'queue', None):
289302
run_args['queue'] = target_group.queue.name
290303
target_vhost = getattr(target_group.queue, 'vhost', None)
@@ -310,6 +323,111 @@ def _send_to_compute_worker(submission, is_scoring, target_group=None):
310323
else:
311324
logger.debug("Submission %s owner %s: no matching group with queue for competition %s",
312325
submission.pk, submission.owner.pk, competition.pk)
326+
=======
327+
if getattr(target_group, "queue", None):
328+
run_args["queue"] = target_group.queue.name
329+
target_vhost = getattr(target_group.queue, "vhost", None)
330+
try:
331+
submission.queue = target_group.queue
332+
submission.save(update_fields=["queue"])
333+
logger.debug("Persisted submission.queue=%s for submission %s", getattr(target_group.queue, "name", None), submission.pk)
334+
except Exception:
335+
logger.exception("Failed to persist submission.queue for submission %s", submission.pk)
336+
logger.info(
337+
"Submission %s forced to group %s queue=%s vhost=%s",
338+
submission.pk,
339+
getattr(target_group, "pk", None),
340+
run_args.get("queue"),
341+
target_vhost,
342+
)
343+
else:
344+
persisted_queue = None
345+
try:
346+
persisted_queue = getattr(submission, "queue", None)
347+
except Exception:
348+
persisted_queue = None
349+
350+
if persisted_queue:
351+
try:
352+
run_args["queue"] = persisted_queue.name
353+
target_vhost = getattr(persisted_queue, "vhost", None)
354+
logger.info(
355+
"Submission %s resolved queue=%s vhost=%s (by persisted submission.queue)",
356+
submission.pk,
357+
run_args.get("queue"),
358+
target_vhost,
359+
)
360+
except Exception:
361+
logger.exception("Error reading persisted submission.queue for submission %s", submission.pk)
362+
else:
363+
competition = submission.phase.competition
364+
user_group_ids = list(submission.owner.groups.values_list("id", flat=True))
365+
logger.debug(
366+
"User %s group ids for competition %s: %s",
367+
submission.owner.pk,
368+
competition.pk,
369+
user_group_ids,
370+
)
371+
372+
comp_user_groups_qs = (
373+
competition.participant_groups
374+
.filter(id__in=user_group_ids)
375+
.select_related("queue")
376+
)
377+
378+
group = (
379+
comp_user_groups_qs.filter(queue__isnull=False).first()
380+
or comp_user_groups_qs.first()
381+
)
382+
383+
if group and getattr(group, "queue", None):
384+
run_args["queue"] = group.queue.name
385+
target_vhost = getattr(group.queue, "vhost", None)
386+
logger.info(
387+
"Submission %s resolved group=%s queue=%s vhost=%s (by owner membership)",
388+
submission.pk,
389+
group.pk,
390+
group.queue.name,
391+
target_vhost,
392+
)
393+
else:
394+
logger.debug(
395+
"Submission %s: no matching group with queue for competition %s via owner membership",
396+
submission.pk,
397+
competition.pk,
398+
)
399+
400+
if submission.parent:
401+
try:
402+
sibling = (
403+
Submission.objects
404+
.filter(parent=submission.parent)
405+
.exclude(pk=submission.pk)
406+
.filter(queue__isnull=False)
407+
.select_related("queue")
408+
.first()
409+
)
410+
if sibling and getattr(sibling, "queue", None):
411+
run_args["queue"] = sibling.queue.name
412+
target_vhost = getattr(sibling.queue, "vhost", None)
413+
# optionally persist to current child for future
414+
try:
415+
submission.queue = sibling.queue
416+
submission.save(update_fields=["queue"])
417+
logger.debug("Persisted submission.queue from sibling=%s to submission=%s", sibling.pk, submission.pk)
418+
except Exception:
419+
logger.exception("Failed to persist submission.queue (from sibling) for submission %s", submission.pk)
420+
421+
logger.info(
422+
"Submission %s resolved queue=%s vhost=%s (by sibling child %s)",
423+
submission.pk,
424+
run_args.get("queue"),
425+
target_vhost,
426+
sibling.pk,
427+
)
428+
except Exception:
429+
logger.exception("Error while trying to resolve queue from sibling for submission %s", submission.pk)
430+
>>>>>>> 0dc476f1 (debug serveur status routing of scoring)
313431
except Exception:
314432
logger.exception("Error while resolving competition/group for submission %s", submission.pk)
315433

0 commit comments

Comments
 (0)