Grading follow-ups from PR #394

Ouverte
#397 0 commentaires 0 réactions 1 personne assignée Voir sur GitHub

@DarioDeSilva y travaille déjà.

Depuis le 27/10/2026.

Évaluation

Cette issue n'a pas encore été évaluée.

Description

A few small leftovers from the #394 review. None of them blocked the merge.

Timeout handling

  • upload_assignment_autograder still stores NULL when autograder_timeout is left out. upload_submission falls back to 300, but code_editor.py::submit_code uses the raw value, so editor submissions get no time limit at all. The fix is to store the default when the field is missing, or to resolve the timeout in one place that every grading path uses.
  • The timeout has no upper bound. A huge value fails the INTEGER column only after the image is built, and large valid values hold the assignment lock for that long. nginx cuts requests off at 300s anyway, so a cap of around 600 seems reasonable.

Grade script

  • If setpriv is missing from the image, or the autograder file is missing, the script exits 93. That gets recorded as a score-0 "Autograder Error" even though student code never ran. Exit codes 125/126/127 inside the script could map to a setup exit code instead.
  • A hang during reset or copy-in, or an exec-level 137 during setup, is still recorded against the student. This is rare and needs an infrastructure failure.
  • results.json and the autograder log have no size limit before they're read into backend memory.

Cleanup

  • Use KILLED_EXIT_CODE in the script and tests instead of a bare 137. Drop the unreachable GRADE_EXIT_TIMED_OUT entry from student_code_ran.
  • Add the submission id and partial stderr to the hung-exec warning.
  • The "Failed to prepare/cleanup container" messages now also cover Docker CLI errors. Reword them.

Stress test

  • test_submission_burst.py --cleanup deletes the assignment but leaves the generated students enrolled in the course.
Langage dominant
Python
Étoiles
13
Forks
0
Merge moyen
9 j 7 h
PR mergées (30 j)
5

Préparer son environnement

  • Fournit un Dockerfile ou un fichier Docker Compose
  • Aucun modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de kiat/codeAssist

Toutes les issues de kiat/codeAssist

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.