fix: add maxRetries to fs.rm in clean to handle ENOTEMPTY race conditions#4
Merged
pyramation merged 2 commits intomainfrom Feb 8, 2026
Merged
fix: add maxRetries to fs.rm in clean to handle ENOTEMPTY race conditions#4pyramation merged 2 commits intomainfrom
pyramation merged 2 commits intomainfrom
Conversation
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix: add maxRetries to fs.rm in clean to handle ENOTEMPTY race conditions
Summary
Adds
maxRetries: 3andretryDelay: 100to thefs.rmcall inclean.ts. This addresses intermittentENOTEMPTY: directory not empty, rmdir 'dist'failures seen in CI when parallel pnpm builds create race conditions during thedistdirectory removal step.Even though
recursive: truewas already set,fs.rmcan still fail withENOTEMPTYdue to a kernel-level race condition — the kernel doesn't always update directory entries synchronously after file deletions, so the finalrmdir()can see stale entries.maxRetriesandretryDelayare built-in Node.jsfs.rmoptions specifically designed to handle these transient filesystem errors.Updates since last revision
clean.test.tsto match the newmaxRetriesandretryDelayoptions (all 3 test cases).Review & Testing Checklist for Human
maxRetries: 3andretryDelay: 100are acceptable values — could increase if CI still flakesconstructiveto verify theENOTEMPTYerrors stopNotes