You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ECS_RUNNER_LIFETIME.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -195,6 +195,7 @@ For `PROVISIONAL` and `SYSTEM`, the runner posts progress to `POST /v6/marathon-
195
195
-`timed_out: true` for SYSTEM timeout failures
196
196
197
197
Treat `IN PROGRESS` summations as unavailable, even when they carry a placeholder score.
198
+
Completed scoring may report `SUCCESS` with nonzero `failedTests` when individual testcases timed out or crashed; `FAILED` is reserved for explicit scorer or skipped-scoring failures.
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -238,7 +238,7 @@ Auth model in code:
238
238
|`POST`|`/v6/marathon-match/internal/system-score`|`administrator` OR `update:marathon-match`|
239
239
240
240
`POST /v6/marathon-match/internal/scoring-results` rejects callbacks whose `challengeId` does not map to an existing Marathon Match config.
241
-
`POST /v6/marathon-match/internal/scoring-progress` stores runner progress in review summation metadata as `testProcess` (`provisional` or `system`), `testProgress` (`0` to `1`), and `testStatus` (`IN PROGRESS`, `SUCCESS`, or `FAILED`).
241
+
`POST /v6/marathon-match/internal/scoring-progress` stores runner progress in review summation metadata as `testProcess` (`provisional` or `system`), `testProgress` (`0` to `1`), and `testStatus` (`IN PROGRESS`, `SUCCESS`, or `FAILED`). Completed scoring can still report `SUCCESS` when individual testcases timed out or crashed; those counts stay in `testProgressDetails.failedTests`.
242
242
243
243
## How to set up a challenge for marathon match scoring
Copy file name to clipboardExpand all lines: docs/marathon-processor-specification-and-scoring-terminology.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -315,6 +315,8 @@ For Provisional and System scoring, the runner posts progress updates while test
315
315
|`testProgressDetails.failedTests`| testcase count with errors |
316
316
|`testProgressDetails.message`| latest runner progress or failure message |
317
317
318
+
Completed scoring may report `testStatus = SUCCESS` with nonzero `testProgressDetails.failedTests` when individual testcases timed out or crashed. `FAILED` is reserved for explicit scorer or skipped-scoring failures.
319
+
318
320
Operators can also inspect ECS runner logs. Runner log mappings are stored for each launched scoring task and can be exposed through:
319
321
320
322
```text
@@ -376,7 +378,7 @@ For each testcase:
376
378
- the best raw score receives `100`
377
379
- all other valid scores receive `(lower score / higher score) * 100`
378
380
379
-
The final relative score is the average of those per-testcase relative scores. If every testcase fails, the aggregate score is `-1`.
381
+
The final relative score is the average of those per-testcase relative scores. If every testcase fails, the aggregate score is `-1` while completed test status remains `SUCCESS`.
Copy file name to clipboardExpand all lines: docs/review-phase-scoring.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,7 +66,7 @@ sequenceDiagram
66
66
67
67
After `ScoringResultService` writes the SYSTEM review summation, `completeSystemReviewIfNeeded` patches the originating review to `COMPLETED` and writes the final score back to Review API.
68
68
69
-
While SYSTEM tests are running, the ECS runner updates the phase review summation metadata with `testProcess` (`provisional` or `system`), `testProgress` (`0` to `1`), and `testStatus` (`IN PROGRESS`, `SUCCESS`, or `FAILED`). These fields are returned by Review API under `reviewSummation.metadata` when metadata is requested. In-progress summations keep a neutral placeholder score and should be displayed as unavailable from `testStatus`; failed progress uses the failed-score sentinel.
69
+
While SYSTEM tests are running, the ECS runner updates the phase review summation metadata with `testProcess` (`provisional` or `system`), `testProgress` (`0` to `1`), and `testStatus` (`IN PROGRESS`, `SUCCESS`, or `FAILED`). These fields are returned by Review API under `reviewSummation.metadata` when metadata is requested. In-progress summations keep a neutral placeholder score and should be displayed as unavailable from `testStatus`; explicit failed progress uses the failed-score sentinel. Completed scoring can report `testStatus = SUCCESS` with nonzero `testProgressDetails.failedTests` when individual testcases timed out or crashed.
70
70
71
71
Each dispatched SYSTEM task also schedules a pg-boss timeout check using the config's `systemTestTimeout` value. The default is 24 hours (`86400000` ms). When the delayed check runs, the API describes the ECS task and checks the SYSTEM summation; if the task is still active and the summation is not complete, it stops the ECS task, writes a failed SYSTEM summation with score `-1`, and includes `metadata.timed_out = true`.
For `PROVISIONAL` and `SYSTEM` scoring, the runner writes progress to the phase review summation metadata through `POST /v6/marathon-match/internal/scoring-progress`. Review API exposes this as `reviewSummation.metadata.testProcess` (`provisional` or `system`), `reviewSummation.metadata.testProgress` (`0` to `1`), and `reviewSummation.metadata.testStatus` (`IN PROGRESS`, `SUCCESS`, or `FAILED`) when metadata is included in the response. In-progress summations keep a neutral placeholder score and must be rendered as unavailable based on `testStatus`; only `FAILED` progress uses the failed-score sentinel. SYSTEM timeout failures also include `reviewSummation.metadata.timed_out = true`.
102
+
For `PROVISIONAL` and `SYSTEM` scoring, the runner writes progress to the phase review summation metadata through `POST /v6/marathon-match/internal/scoring-progress`. Review API exposes this as `reviewSummation.metadata.testProcess` (`provisional` or `system`), `reviewSummation.metadata.testProgress` (`0` to `1`), and `reviewSummation.metadata.testStatus` (`IN PROGRESS`, `SUCCESS`, or `FAILED`) when metadata is included in the response. In-progress summations keep a neutral placeholder score and must be rendered as unavailable based on `testStatus`; only explicit scorer or skipped-scoring failures use `FAILED` progress and the failed-score sentinel. Completed scoring with timed-out or crashed testcases keeps those counts in `testProgressDetails.failedTests` while reporting `testStatus = SUCCESS`. SYSTEM timeout failures also include `reviewSummation.metadata.timed_out = true`.
103
103
104
104
For generic runner artifacts, only EXAMPLE scoring uploads the member-visible public artifact. Its public `output.txt` includes each testcase ordinal, actual seed, seed score, runtime, runner/tester errors, and submitted-solution stderr, while submitted-solution stdout and compilation diagnostics stay out of that file. The separate `compile_log.txt` file preserves compilation output. Every generic scoring phase uploads private internal artifacts: `reviews.json` includes `compilationOutput`, per-test score details with testcase ordinals and actual seeds, and top-level `testScores`; callback metadata keeps member-visible testcase ordinals only, compile and execution logs are preserved as `compile_log.txt`, `execution-{submissionId}.log`, and optional `error-{submissionId}.log`, and captured submitted-solution output is split into `stdout/{seed}.txt` and `stderr/{seed}.txt` files for each actual seed. PROVISIONAL and SYSTEM scoring do not publish competitor-visible artifacts.
0 commit comments