You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace an unusable binary rather than re-spawning it
Addresses the three findings from review.
The recovery added for a corrupt binary only worked when the unlink
succeeded. When it failed -- the locked-file case this branch is about
-- binaryPath() handed the same file straight back, because checkPath
uses X_OK and Windows treats that as F_OK, so the binary was re-spawned
for every remaining retry with no wait. Wait for the lock before
replacing it, and stop rather than retry when the file survives.
download() returned on a source-url error without calling back, so an
invalid key or network failure left Local.start() waiting. Pre-existing,
but the same contract the previous commit closed.
download.js printed Done from the close handler, which node emits after
error too, so downloadSync accepted a partially written binary as a
completed download. Guard the log, and treat a non-zero exit status as a
failed attempt before inspecting stdout.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
0 commit comments