Skip to content

Bun's EFAULT on concurrent rmSync - #736

Merged
kixelated merged 2 commits into
mainfrom
quest/m1/bun-efault
Nov 14, 2026
Merged

kixelated merged 2 commits into
mainfrom
quest/m1/bun-efault

Conversation

@kixelated

@kixelated kixelated commented Nov 14, 2026 •

Copy link
Copy Markdown
Collaborator

Works on quest/m1/bun-efault.md. Posts the Bun EFAULT report upstream, as the user approved on 2026-10-28, and records it in the quest. The quest stays open, waiting on a Bun release.

Posted upstream

Comment on oven-sh/bun#48811, instead of a new issue, as the Plan asked. The issue, filed 2026-11-13, reports this exact bug (non-recursive rm, EFAULT on Windows when deleters race) but its reporter never ran the repro. The comment adds:

  • the Windows runs from #233's diagnostics on Bun 1.4.2: EFAULT on windows-2022 and windows-11-arm, with counts, and Node's EPERM on arm,
  • that rmSync hits it too, and that one remover alone never fails,
  • a repro trimmed from the diagnostic script (full script linked at its commit).

I checked oven-sh/bun's CONTRIBUTING.md, AGENTS.md, CLAUDE.md, issue templates, and .github and found no rule on AI-written issues or comments. It carries the (Written by Claude Sonnet 5.5) line this repository requires. Nothing else was posted on oven-sh/bun.

Quest changes

  • Goal now states the outcome (Bun no longer throws EFAULT) instead of "a report exists".
  • Plan records the comment's URL, and names oven-sh/bun#48816 (open, by robobun) as the fix to wait for: it makes non-recursive rm report the errno unlink returned, so the loser gets EPERM as in Node, which remove() already tolerates. oven-sh/bun#38550 is noted as closed unmerged on 2026-11-13; #39708 and #39710 (recursive case) stay as related.
  • Waiting now points at #48811 and #48816.

Public API and wire: none.

Models

Size: XS
Implementer: Claude Code, claude-sonnet-5-5, unknown effort (arm A)

Choices made without asking

  • Commented on #48811 rather than opening an issue: it matches exactly, and a duplicate would split the discussion. The comment is the "report" the quest's Goal required.
  • Did not comment on #48816, the fix PR: one post only.
  • The posted repro is trimmed from the diagnostic and has only run on Linux (no errors there, as expected), not on Windows. The comment says so; the counts come from the full diagnostic's CI run.
  • Kept the quest open with an updated Waiting item rather than deleting it: remove() in src/cli/gate.ts still needs EFAULT until a release and a pin bump.

Validation

  • just check and just test pass locally; quest check --base origin/main passes.
  • Ran the trimmed repro under Bun 1.4.4 and Node on Linux: no errors, so it runs. The Windows behavior is from the diagnostic run (Bun 1.4.2, both runners); I have no Windows host.
  • Checked the posted counts against that run's logs, and the comment URL resolves.

Review

Rewritten by quest review after each round.

  • Head: 1ff060f

  • Base: origin/main at f46721b

  • Risk: low, Only a plan under quest/ changes, so no behavior users or other repositories rely on can break, and a revert fully undoes the documentation update.

  • Classified: low by Codex, gpt-6.1-sol, low effort, session 01a1db9a-f339-7f22-a571-98c2951ded1e

  • Reviewer: Codex, gpt-6.1-sol, medium effort

  • Session: 01a1db9b-0681-78e2-8908-9d59b772a377, round 1

  • Score: 10/10, The diff only updates the quest's upstream tracking, preserves the release-and-pin prerequisite for removing the workaround, and has no actionable defects.

  • Rounds: 1; first round 0; findings 0: fixed 0, refuted 0, open 0

  • Findings: none

  • Reviewer: Codex, gpt-6.1-sol, low effort, shadow

  • Session: 01a1db9b-0682-7903-bc8a-460d96a9a071, round 1

  • Score: 10/10, The documentation-only update preserves the release-and-pin prerequisite for removing the workaround and has no actionable defects.

  • Rounds: 1; first round 0; findings 0: fixed 0, refuted 0, open 0

  • Findings: none

kixelated and others added 2 commits November 14, 2026 11:10
Quest-Claim: f19caad462a73bd3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review November 14, 2026 19:49
@coderabbitai

coderabbitai Bot commented Nov 14, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 12 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a9ebd535-5e23-4a1b-8751-240b2f889c04
Commits

Reviewing files that changed from the base of the PR and between ee98a03 and 1ff060f.

Files selected for processing: 1

  • quest/m1/bun-efault.md
  • 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

@pullfrog pullfrog Bot 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.

✅ No new issues found.

Reviewed changes: the single-file quest plan update.

  • Goal now states the outcome (Bun no longer throws EFAULT) and keeps the release-and-pin condition for removing the remove() workaround.
  • Plan records the upstream comment on oven-sh/bun#48811 and names #48816 as the fix to wait for. It notes that EPERM is already tolerated, so only the EFAULT entry goes.
  • Waiting points at #48811 and #48816.

Pullfrog  | View workflow run | Using claude-sonnet-5-5 | 𝕏

@kixelated
kixelated added this pull request to the merge queue Nov 14, 2026
Merged via the queue into main with commit 62adc7d Nov 14, 2026
26 checks passed
@kixelated
kixelated deleted the quest/m1/bun-efault branch November 14, 2026 19:57
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