Skip to content

fix(gates): gc-root-dominance defrag probe follows the file move (#7443) - #7543

Merged
proggeramlug merged 2 commits into
mainfrom
fix/7540-gc-root-dominance-rotted-probe
Aug 6, 2026
Merged

fix(gates): gc-root-dominance defrag probe follows the file move (#7443)#7543
proggeramlug merged 2 commits into
mainfrom
fix/7540-gc-root-dominance-rotted-probe

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

_probe_old_defrag_off_by_default read crates/perry-runtime/src/gc/oldgen.rs to confirm old-page defrag is still opt-in. #7443 moved that code to gc/oldgen_defrag.rs, so the probe stopped finding PERRY_GC_OLD_DEFRAG and began reporting "old-page defrag may now be unconditional" — on a tree where it is still gated exactly as before.

This is worse than a red job. By the checker's own contract, this probe failing declares the reports it was suppressing to be real again — so a file rename silently converts a passing audit into a wall of false positives, in the gate family the entire #7341 rooting campaign depends on. Found by an agent working #7497, which flagged it alongside gc-ratchet as red on main for reasons unrelated to its own PR.

The probe now searches a candidate list and reports which source it validated, so the next split costs one line rather than a rotted premise; the failure message names the list.

Sabotage-verified both directions, because a repaired probe that can no longer fail is the worse outcome:

  • as-is → (True, 'gated on PERRY_GC_OLD_DEFRAG in .../oldgen_defrag.rs, empty selection when off')
  • with the old_page_defrag_enabled() short-circuit deleted → (False, 'select_old_page_defrag_pages no longer short-circuits …')

--self-test passes.

Summary by CodeRabbit

  • Maintenance
    • Updated the application version to 0.5.1304.
    • Improved validation of garbage-collection configuration across updated source layouts.
    • Diagnostics now provide clearer information when expected configuration files or settings are not found.
    • Continued safeguards ensure defragmentation remains disabled by default where required.
  • Documentation
    • Updated the documented current version and added release notes for the validation improvements.

@proggeramlug
proggeramlug merged commit a0a0b78 into main Aug 6, 2026
27 of 46 checks passed
@proggeramlug
proggeramlug deleted the fix/7540-gc-root-dominance-rotted-probe branch August 6, 2026 17:01
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2bfc8509-979e-4e7b-ae97-bf048f863e85

📥 Commits

Reviewing files that changed from the base of the PR and between 0693966 and fecb7dd.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • CLAUDE.md
  • Cargo.toml
  • changelog.d/7540-gc-root-dominance-rotted-probe.md
  • scripts/gc_root_dominance_check.py

📝 Walkthrough

Walkthrough

The GC root-dominance probe now detects the relocated old-generation source file, validates the defrag guard, and reports the selected path. Project version documentation and workspace metadata are updated to 0.5.1304.

Changes

GC probe and release metadata

Layer / File(s) Summary
Relocated GC probe validation
scripts/gc_root_dominance_check.py, changelog.d/7540-gc-root-dominance-rotted-probe.md
The probe checks both old-generation source paths, validates select_old_page_defrag_pages, and includes the discovered path in diagnostics. The changelog documents the repair.
Release version metadata
Cargo.toml, CLAUDE.md
The workspace package version and documented current version change from 0.5.1303 to 0.5.1304.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested labels: bug

Suggested reviewers: jdalton

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/7540-gc-root-dominance-rotted-probe

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant