Skip to content

test_reclaim: a drive-override restore makes no mountpoint at the source directory - #1351

Merged
ejc3 merged 1 commit into
mainfrom
fix/reclaim-test-drive-overrides
Oct 27, 2026
Merged

ejc3 merged 1 commit into
mainfrom
fix/reclaim-test-drive-overrides

Conversation

@ejc3

@ejc3 ejc3 commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Main has failed test_reclaim::a_sigkilled_restore_leaves_its_mountpoint_and_runtime_dir_to_the_next_launch in every Host-Root and Container lane since 0991437 (#1318):

Error: the parked restore has not made /mnt/fcvm-btrfs/root/vm-disks/<source> and /mnt/fcvm-btrfs/root/vm-disks/<clone>

#1318 pinned a Firecracker whose snapshot load overrides every source path, so a restore no longer recreates the source VM's directory as a mountpoint. The test still required that directory.

Change: the test, renamed a_sigkilled_restore_leaves_its_runtime_dir_to_the_next_launch, requires the parked restore to have made its own runtime directory and not the source directory, and the next launch to remove the runtime directory. Reclaim of a mountpoint made by an older binary stays covered by the unit tests in src/reclaim.rs.

Contract: main's reclaim test matches the restore #1318 ships. Test-only change.

Tested:

  • make test-root FILTER="-E 'binary(test_reclaim) & test(/a_sigkilled_restore/)'": 1 passed.
  • The previous form fails on main CI run 40411315700.
  • make lint passes.

Summary by CodeRabbit

  • Tests
    • Updated restore-reclamation checks to verify that the source directory remains absent while a restore is parked and that the restore’s runtime directory is removed after the next launch.

…rce directory

Since #1318 the pinned Firecracker overrides every source path at snapshot
load, so a restore no longer recreates the source VM's directory as a
mountpoint. a_sigkilled_restore_leaves_its_mountpoint_and_runtime_dir_to_the_next_launch
still required that directory while the restore was parked, and failed in
every Host-Root and Container lane on main since 0991437 ("the parked
restore has not made <source dir> and <clone dir>").

The test, renamed a_sigkilled_restore_leaves_its_runtime_dir_to_the_next_launch,
now requires the parked restore to have made its own runtime directory and
NOT the source directory, and the next launch to remove the runtime
directory. Reclaiming a mountpoint an older binary made stays covered by
the unit tests in src/reclaim.rs.

Tested: make test-root FILTER="-E 'binary(test_reclaim) & test(/a_sigkilled_restore/)'"
(1 passed); the previous form fails on main CI run 40411315700.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T01:27:51.605328Z 2917d8f PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a0be8da3-fa6b-4dcb-9636-67d5fd5c3c33
Commits

Reviewing files that changed from the base of the PR and between ece9bb1 and 2917d8f.

Files selected for processing: 1
  • tests/test_reclaim.rs

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The slow restore-reclamation test now verifies that a parked restore has its own runtime directory and that the source VM directory remains absent. It no longer checks source-mountpoint creation or reclamation.

Changes: Restore reclamation test

Layer / File(s) Summary
Restore runtime directory checks
tests/test_reclaim.rs
The test focuses on the killed restore’s runtime directory. While the restore is parked, it checks that the restore directory exists and the source VM directory remains absent. It continues to check reclamation after the next launch.

Priority: Low

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

Change: Other

Possibly related issues

  • ejc3/fcvm#1181 — The test checks that the restore does not recreate the source VM directory.
  • ejc3/fcvm#1187 — The test no longer expects a source mountpoint to be created and checks restore runtime directory reclamation.
  • ejc3/fcvm#1311 — The test checks that the restore leaves the source VM directory absent.

Possibly related PRs

  • ejc3/fcvm#1304 — This PR removes the integration assertion for a source mountpoint that the current restore path does not create.
  • ejc3/fcvm#1314 — Both changes cover restore mount targets and source VM directory behavior.
  • ejc3/fcvm#1318 — This PR tests that the restore does not create a source VM directory mountpoint.
Merge Risk: Minimal · up to 2917d

No merge-blocking risk is identified in this test-only change.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title names the test file and the change in behavior it covers: a drive-override restore creates no mountpoint at the source directory. The PR updates tests/test_reclaim.rs to match the snapshot-l…
Docstring Coverage Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within survi…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the test file and the change in behavior it covers: a drive-override restore creates no mountpoint at the source directory. The PR updates tests/test_reclaim.rs to match the snapshot-load behavior from #1318, where pinned Firecracker overrides every source path and the restore no longer recreates the source VM's directory as a mountpoint. The title is specific to the main change and matches the objectives. It is slightly long at 82 characters, but it stays on topic.

Full details: Docstring Coverage

Explanation

Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 1 functions across 1 files.

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@ejc3 ejc3 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NOT-A-DEFECT: CodeRabbit's walkthrough reports no actionable comments and minimal merge risk; it claims nothing to fix.

@ejc3
ejc3 merged commit d6aa687 into main Oct 27, 2026
10 of 15 checks passed
@ejc3
ejc3 deleted the fix/reclaim-test-drive-overrides branch October 27, 2026 01:55
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