Skip to content

fix: wait for extracted binary to close before spawning (Windows EBUSY) [TE-27044] - #63

Merged
amathur-LT merged 6 commits into
LambdaTest:masterfrom
rachit-lambdatest:TE-27044-fix-windows-spawn-ebusy
Oct 13, 2026
Merged

amathur-LT merged 6 commits into
LambdaTest:masterfrom
rachit-lambdatest:TE-27044-fix-windows-spawn-ebusy

Conversation

@rachit-lambdatest

@rachit-lambdatest rachit-lambdatest commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

On Windows with real-time antivirus, 4.0.13 can fail to start the tunnel with spawn EBUSY. node-stream-zip's extract() resolves before the extracted binary's file handle is closed, so the binary is spawned while it's still open for writing.

Change

  • lib/tunnel_binary.js: stream the binary entry into our own write stream and wait for 'close' before chmod + spawn.
  • New CI workflow (Windows/Ubuntu/macOS, Node 18/22): download → extract → spawn, including a run that delays the file close to mimic antivirus.
  • Bump version to 4.0.14; bundled config: latest 4.0.14, add 4.0.13/4.0.14 to supportedVersions, sync FreeBSD hashes with the hosted config.

Verification

With the delayed close, 4.0.13 fails on Windows (EBUSY) and Ubuntu (ETXTBSY). This branch passes on all OS/Node combinations.

🤖 Generated with Claude Code

rachit-lambdatest and others added 6 commits October 12, 2026 20:33
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ons, sync FreeBSD hashes

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@amathur-LT
amathur-LT merged commit 1d38502 into LambdaTest:master Oct 13, 2026
6 checks passed
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.

2 participants