Skip to content

fix(core): retry transiently busy e2fsprogs probes - #4315

Merged
johntmyers merged 1 commit into
NVIDIA:mainfrom
grs:ftf1
Oct 13, 2026
Merged

johntmyers merged 1 commit into
NVIDIA:mainfrom
grs:ftf1

Conversation

@grs

@grs grs commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Prevent e2fsprogs preflight checks from failing when Linux temporarily reports a newly installed executable as busy.

Related Issue

Closes #4314

Changes

  • Retry ExecutableFileBusy errors for up to one second when starting an e2fsprogs version probe.
  • Keep cancellation responsive while waiting between retries.
  • Continue to fail immediately for configuration, loader, and other execution errors.
  • Add a Linux regression test that releases a write-open executable during the retry window.

Testing

  • Checks appropriate to the affected code and behavior pass
  • Unit tests added/updated (if applicable)
  • E2E tests added/updated (if applicable)

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

Signed-off-by: Gordon Sim <gsim@redhat.com>
@copy-pr-bot

copy-pr-bot Bot commented Oct 7, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@grs
grs marked this pull request as ready for review October 7, 2026 21:35
@grs
grs requested review from a team, derekwaynecarr, mrunalp and sjenning as code owners October 7, 2026 21:35

@6639835 6639835 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Reviewed bounded executable-busy retry and cancellation/cleanup at 29c9c53. Only ExecutableFileBusy retries for at most twenty 50ms delays; other errors fail immediately. Each delay prioritizes cancellation, and success retains timeout/process-group cleanup/reap. Linux regression releases a writer after 100ms. No actionable issue found. Rust builds/Linux process tests were not run.

@johntmyers johntmyers self-assigned this Oct 12, 2026
@johntmyers johntmyers added the test:e2e Requires end-to-end coverage label Oct 12, 2026
@github-actions

Copy link
Copy Markdown

Label test:e2e applied, but pull-request/4315 does not exist yet. A maintainer needs to comment /ok to test 29c9c53c22f505deca7478a7c06b9c73bfc9006c to mirror this PR. Once the mirror exists, re-apply the label or re-run Branch E2E Checks from the Actions tab.

@johntmyers

Copy link
Copy Markdown
Collaborator

/ok to test 29c9c53

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

gator-agent

PR Review Status

The bounded executable-busy retry has no blocking review findings. It retries only the transient Linux error, keeps cancellation responsive, and preserves process cleanup; the added Linux regression test covers recovery after the executable writer closes.

Branch Checks, Helm Lint, and the standard E2E suite are queued or running for the current head after applying test:e2e and posting /ok to test. Trivy Changes is still awaiting workflow approval, and sandbox policy prevents Gator from approving that run.

Action required: A maintainer must approve the current-head Trivy Changes run, or the operator must allow the scoped workflow-approval endpoint.

Blocking findings: None.
Carried findings: None.

Gator metadata
  • Validation: Focused VM host-tool preflight bug fix with reproduction and acceptance criteria in #4314; no duplicate found.
  • Docs: No update needed for an internal transient-error retry with unchanged commands, configuration, and diagnostics.
  • Checks: DCO and vouch passed; Branch Checks and Helm Lint dispatched; Trivy Changes requires workflow approval.
  • E2E: test:e2e applied; current-head Branch E2E Checks run 38296984577 dispatched; no GPU or Windows label needed.
  • Head SHA: 29c9c53c22f505deca7478a7c06b9c73bfc9006c
  • Base SHA: e406c2befbe65501409026d49259602669f7246a
  • Merge base SHA: e406c2befbe65501409026d49259602669f7246a
  • Patch ID: 1877b276d62dc6ae7682e56e98644d41b87fca0b
  • Gator payload: 12
  • Review mode: initial
  • Previous reviewed SHA: none
  • Review budget exhausted: no
  • Maintainer decision required: no
  • Next state: gator:blocked
  • Blocked reason: workflow_approval_required

@johntmyers johntmyers added the gator:blocked Gator is blocked by process or repository gates label Oct 12, 2026
@johntmyers
johntmyers added this pull request to the merge queue Oct 13, 2026
Merged via the queue into NVIDIA:main with commit 2f6c691 Oct 13, 2026
117 of 119 checks passed
@johntmyers

Copy link
Copy Markdown
Collaborator

gator-agent

Monitoring Complete

Monitoring is complete because this PR has merged.

The remaining gator:blocked label is stale. I am removing it because there is nothing left for Gator to monitor on this PR.

Gator metadata
  • Head SHA: 29c9c53c22f505deca7478a7c06b9c73bfc9006c
  • Gator payload: 12
  • Final status: merged

@johntmyers johntmyers removed the gator:blocked Gator is blocked by process or repository gates label Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: VM config preflight fails when e2fsprogs is transiently busy

3 participants