Create judge tasks for a judging only once. - #3736
Conversation
|
@tuupke heads-up since you have been removing transactions for #2848: this adds one, but of a different kind. The ones you removed had the shape that snapshot isolation rejects: plain If you would rather have no transaction here, a |
791838a to
42c0626
Compare
unblockJudgeTasks() checks for judgings without judge tasks and creates them, but two concurrent callers both pass the check. The second set fails on judging_run's unique key with the "1062 Duplicate entry" from DOMjudge#2848 and leaves judge tasks behind that no judging run points at. Lock the judging and re-check inside.
42c0626 to
e8662ba
Compare
unblockJudgeTasks() checks for judgings without judge tasks and creates them, but two concurrent callers both pass the check. The second set fails on judging_run's unique key with the "1062 Duplicate entry" from #2848 and leaves judge tasks behind that no judging run points at. Lock the judging and re-check inside.