Skip to content

Sync issue with multiple judgehosts #279

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jason-huh opened this issue Aug 26, 2017 · 1 comment
Closed

Sync issue with multiple judgehosts #279

jason-huh opened this issue Aug 26, 2017 · 1 comment

Comments

@jason-huh
Copy link

  1. Judgehost A, B are running well.
  2. Judgehost A is no longer able to run scripts (i.e. lack of disk space, abnormal termination) but Domserver still knows that it is alive. Hence, there occur lots of pending submissions assigned to A.
  3. The administrator is aware of the problem with judgehost A and stops it. Domserver does not send further submissions.
  4. Judgehost B, the only judgehost which can judge, judges them and the results are sent to DB.
  5. After fixed, judgehost A judges them and the results are sent to DB.

Then submission.php will look like the following

http://*.com/domjudge/jury/submission.php?id=107

  ID start max runtime judgehost result rejudging
  j107 18:56 0 s   wrong-answer  
j187 10:56 s ip-172---* compiler-error  

error: domjudge query error(value SELECT result FROM judging WHERE submitid = 107 AND valid = 1): Query returned too many rows(2)

SELECT * FROM judging WHERE submitid = 107 AND valid = 1

judgingidUnique ID cidContest ID submitidSubmission ID being judged starttimeTime judging started endtimeTime judging ended, null = still busy judgehostJudgehost that performed the judging resultResult string as defined in config.php verifiedResult verified by jury member? jury_memberName of jury member who verified this verify_commentOptional additional information provided by the ve… validOld judging is marked as invalid when rejudging output_compileOutput of the compiling the program seenWhether the team has seen this judging rejudgingidRejudging ID (if rejudge) prevjudgingidPrevious valid judging (if rejudge)
107 8 107 1502704590.673028000 1502704595.577489000 NULL wrong-answer 0 NULL NULL 1 [BLOB - 578 B] 0 NULL NULL
187 8 107 1502762175.915671000 1502762176.436800000 ip-172---* compiler-error 0 NULL NULL 1 [BLOB - 672 B] 0 NULL NULL

As you may see the valid field are both updated to 1.

This issue is totally regardless of the two issues I've just created before. Please note that the domjudge version is 5.1.2 and some sensitive information is marked with an asterisk.

@eldering
Copy link
Member

Ah, this has also been fixed in current development master branch. Now when a judgedaemon is restarted after a crash (or currently more often: an internal error it reported), any previously running judging is canceled, and will be picked up anew.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants