Repository navigation
fix(arena): propagate judge outages and cancel sibling calls - #5073
Merged
Merged
Conversation
Contributor
|
🌿 Preview your docs: https://nvidia-preview-pr-5073-63f974f87bab.docs.buildwithfern.com/nemo/gym |
AdamRajfer
force-pushed
the
arajfer/failure-reporting
branch
from
October 26, 2026 01:37
ad23cee to
c9b4f06
Compare
AdamRajfer
force-pushed
the
arajfer/saved-state-recovery
branch
from
October 26, 2026 01:37
3afbdf4 to
723ad7d
Compare
AdamRajfer
force-pushed
the
arajfer/failure-reporting
branch
from
October 26, 2026 01:48
c9b4f06 to
648613e
Compare
AdamRajfer
force-pushed
the
arajfer/saved-state-recovery
branch
from
October 26, 2026 01:48
723ad7d to
ad7771d
Compare
AdamRajfer
force-pushed
the
arajfer/saved-state-recovery
branch
from
October 26, 2026 03:42
ad7771d to
eadec35
Compare
AdamRajfer
force-pushed
the
arajfer/failure-reporting
branch
from
October 26, 2026 03:42
648613e to
ee65dce
Compare
Signed-off-by: Adam Rajfer <arajfer@nvidia.com>
AdamRajfer
force-pushed
the
arajfer/saved-state-recovery
branch
from
October 26, 2026 19:39
3612b3e to
2ad82a3
Compare
Preserve the actual judge HTTP error before decoding its response. Cover HTTP 500 with rate-limit text through the real HTTP response and judge failure wrapper. Signed-off-by: Adam Rajfer <arajfer@nvidia.com>
Signed-off-by: Adam Rajfer <arajfer@nvidia.com>
yuhezhang-ai
approved these changes
Oct 27, 2026
yuhezhang-ai
left a comment
Contributor
There was a problem hiding this comment.
Thanks Adam, both points are addressed. The judge's HTTP status is checked before parsing, and the Arena configs set the health limits, with the README saying what is and isn't counted. The 183 Arena tests pass for me on 69b605f.
One note for me, not for this PR: with #3302, an outage that has used up its retries counts as a final failure, so the not-final limit would stop catching it. I'll add the matching final limit to these three configs in #3302.
Generated by Claude Code
Contributor
|
🔄 Merge queue validation started! You can track the progress here: https://github.com/NVIDIA-NeMo/Gym/actions/runs/40471986253 |
This was referenced Oct 27, 2026
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When either Arena judge request fails, propagate the outage through existing judge-failure handling and cancel and await its sibling request. Check HTTP status before parsing the response so an HTTP error retains its actual status. Preserve the saved answer, native verdict scoring, parsing and retry limits.
flowchart LR A[Saved answers] --> B[Two judge orderings] B --> C[Both succeed: native score] B --> D[Either fails: cancel and await sibling] D --> E[Existing masked judge failure]The LMArena v2/v3 configs set the shared non-final failure limit to 1%, and Vision Arena to 5%. The README distinguishes judge outages in the failures sidecar from missing or unparseable judgments counted by Arena's aggregation guard. Shared health marks an above-limit run unhealthy but still publishes its score; withholding that score is a separate follow-up. The existing aggregation guard is unchanged.
This PR stands on main and changes only Arena and its benchmark configs. Shared run state, latest-attempt selection and saved-answer reverification belong to #3302 and #3879.
Validation: 183 Arena tests and 50 health-limit tests pass. Actual benchmark config resolution reaches the collector with limits of 1%, 1% and 5%. Changed-path hooks pass. No model benchmark score is claimed.