Skip to content

Submissions

Placeholder Eric Carmichael requested to merge 81-submissions into develop

Resolves #81 (closed)

Spec

This is mostly for the backend and handling of submissions/output. We should probably make a separate issue to drill down into the frontend aspects of this.

Site worker

  • Task for pushing submission to compute worker
  • Task sends along a "per submission" API key
  • Task for the run has some kind of time limit
  • Task stores the ID so we can cancel it later
  • Cancel task works

Compute worker

  • Limits time of submission
  • Downloads actual submission content
  • Sets env var in run docker for "per submission" API key
  • Loads in simple python helper library named codalab
  • Ability to do codalab.email_participant("subject", "body")
  • Uploads submission result
  • Uploads submission stdout, stderr
  • Sets submission status throughout the run

Streaming output

  • Open socket to compute worker
  • Create temp file /tmp/submissions/<task id>.output (diff name?)
  • Append socket data to the temp file
  • [Codalab -> Compute worker] Reconnect socket on problem ???
  • [Codalab -> Participant] Reconnect on socket problem? (simple with websocket JS library, I believe)
  • Frontend passed stream

Front end

  • Can upload submission
  • Reconnecting websocket works
  • Can see stream of submission data
  • If they refresh, send the existing temp file data
  • Actually pass a valid phase ID for the competition, from dropdown or something

Merge request reports

Loading