Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions scripts/workers/remote_submission_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,33 @@ def run_submission(
submission_metadata=submission,
)
if remote_evaluation:
# Handle successful remote evaluation - save the submission output
stdout.close()
stderr.close()

stdout_content = read_file_content(stdout_file)
stderr_content = read_file_content(stderr_file)

submission_data = {
"challenge_phase": phase_pk,
"submission": submission_pk,
"submission_status": "finished",
"stdout": stdout_content,
"stderr": stderr_content,
}

if "result" in submission_output:
submission_data["result"] = json.dumps(
submission_output.get("result")
)
submission_data["metadata"] = json.dumps(
submission_output.get("submission_metadata")
)

update_submission_data(
submission_data, challenge_pk, submission_pk
)
shutil.rmtree(temp_run_dir)
return
except Exception:
status = "failed"
Expand Down
42 changes: 42 additions & 0 deletions scripts/workers/submission_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -529,6 +529,48 @@ def run_submission(
challenge_phase.codename,
submission_metadata=submission_serializer.data,
)
# Handle successful remote evaluation
submission.status = Submission.FINISHED
submission.completed_at = timezone.now()
submission.save()

# Save submission output if available
if submission_output:
output = {}
output["result"] = submission_output.get("result", "")
submission.output = output

# Save submission_result_file
submission_result = submission_output.get("submission_result", "")
submission_result = json.dumps(submission_result)
submission.submission_result_file.save(
"submission_result.json", ContentFile(submission_result)
)

# Save submission_metadata_file
submission_metadata = submission_output.get(
"submission_metadata", ""
)
submission.submission_metadata_file.save(
"submission_metadata.json",
ContentFile(json.dumps(submission_metadata)),
)
submission.save()

if not challenge_phase.disable_logs:
with open(stdout_file, "r") as stdout_f:
stdout_content = stdout_f.read()
submission.stdout_file.save(
"stdout.txt", ContentFile(stdout_content)
)
with open(stderr_file, "r") as stderr_f:
stderr_content = stderr_f.read()
submission.stderr_file.save(
"stderr.txt", ContentFile(stderr_content)
)

# Delete the complete temp run directory
shutil.rmtree(temp_run_dir)
return
except Exception:
stderr.write(traceback.format_exc())
Expand Down