Fix flaky Browser Tests: bump @embroider/vite for the tmp-dir rename race (ENOTEMPTY)#319
Merged
NullVoxPopuli merged 1 commit intoJul 13, 2026
Conversation
…race
CI's Browser Tests job intermittently fails with
Error: ENOTEMPTY: directory not empty,
rename '/tmp/embroider-vite-jump-tmp-XXXXXX' -> '/tmp/embroider-vite-jump-<hash>'
whenever multiple test apps build in parallel (turbo) and resolve the
same workspace package: the jump dir is content-addressed by
pkg.root + pkg.name, so concurrent builds race to rename onto the same
target. @embroider/vite 1.5.2 only caught EEXIST from that race, but on
Linux renaming onto an existing non-empty directory throws ENOTEMPTY,
which escaped the guard and failed the build. This bites every PR that
changes kolay's dist (all three test apps rebuild in parallel; it
killed 3 consecutive CI runs on universal-ember#318).
@embroider/vite 1.7.7+ handles ENOTEMPTY in the race guard, so bump the
test apps' pins to 1.7.8 (and @embroider/core to 4.6.2 to satisfy its
peer range). All test-app suites and node tests pass locally.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
|
|
Someone is attempting to deploy a commit to the universal-ember Team on Vercel. A member of the Team first needs to authorize it. |
NullVoxPopuli
approved these changes
Jul 13, 2026
Merged
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.
CI's Browser Tests job intermittently fails during a test app's
build:testswith:Root cause
@embroider/vite'smaybeCaptureNewOptimizedDepbuilds a content-addressed "jump" dir keyed byhashed(pkg.root + '|' + pkg.name)andrenameSyncs a freshly-built tmp dir onto it. When turbo builds multiple test apps in parallel and they resolve the same workspace package (same root + name → same hash), the builds race to create the same target. The race guard in 1.5.2 only catchesEEXIST— but on Linux, renaming onto an existing non-empty directory throwsENOTEMPTY, which escapes the guard and fails the whole build.This bites any PR that changes kolay's
dist(all three test apps rebuild in parallel, no turbo cache hit) — it failed 3 consecutive CI runs on #318 (inmarkdown-onlytwice andcustom-root-urlonce, racing to the sameembroider-vite-jump-79d23f7ctarget).Fix
@embroider/vite>= 1.7.7 handlesENOTEMPTYin the race guard (resolver.ts on embroider main — "same race, different errno"). This bumps the three test apps' pins to1.7.8, plus@embroider/core4.4.3→4.6.2to satisfy 1.7.8's peer range. (docs-app already floats via^1.5.2.)Verification
pnpm turbo test:browser --force: 6/6 tasks, all test-app + docs-app suites pass with the bumped pinspnpm test:node: 75/75@embroider/vite1.7.8's resolver confirmed to contain theENOTEMPTYhandling🤖 Generated with Claude Code