Skip to content

feat(swe-bench): conservative claim reaper + PID-only memory guard - #471

Open
arekay-nv wants to merge 1 commit into
swe-layer-2from
swe-layer-3
Open

feat(swe-bench): conservative claim reaper + PID-only memory guard#471
arekay-nv wants to merge 1 commit into
swe-layer-2from
swe-layer-3

Conversation

@arekay-nv

Copy link
Copy Markdown
Collaborator

What does this PR do?

Type of change

  • Bug fix
  • New feature
  • Documentation update
  • Refactor/cleanup

Related issues

Testing

  • Tests added/updated
  • All tests pass locally
  • Manual testing completed

Checklist

  • Code follows project style
  • Pre-commit hooks pass
  • Documentation updated (if needed)

Stack created with GitHub Stacks CLIGive Feedback 💬

reaper.py releases a stale claim only when it has no result, its heartbeat
is past stale_after, AND its owner is provably gone. Liveness is a pluggable
protocol: LocalProcessLiveness pairs pid with boot id so a recycled pid on a
rebooted host is not read as a live owner, and SlurmStepLiveness treats a
step missing from scontrol inside a live job as dead, because the job-level
rule alone deadlocks the queue forever. An indeterminate probe releases
NOTHING - a false reap creates two owners, duplicate results and a wrong
denominator.

guards.py kills a runaway graded test only under a full conjunction (RSS
over threshold AND cwd inside the testbed AND a container-supervisor
ancestor). Kills are by PID and refuse self and any ancestor of self; there
is no pattern-kill path in the module at all, and a test greps the source to
keep it that way. Each term reports its evidence count, and
HealthVerdict.combine returns INDETERMINATE rather than UNHEALTHY when a
term has zero evidence, so a conjunctive guard cannot collapse into its
weakest clause.
@arekay-nv
arekay-nv requested a review from a team as a code owner August 26, 2026 03:32
@github-actions
github-actions Bot requested a review from nvzhihanj August 26, 2026 03:32
@github-actions

Copy link
Copy Markdown

MLCommons CLA bot All contributors have signed the MLCommons CLA ✍️ ✅

@github-actions github-actions Bot added the size/large PR Review Policy: 501-1500 lines or 21-50 files label Aug 26, 2026
class OwnerLiveness(Protocol):
"""Decides whether the process that claimed a unit still exists."""

def probe(self, owner: OwnerRecord) -> LivenessVerdict: ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/large PR Review Policy: 501-1500 lines or 21-50 files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants