mapbox / mapbox/node-pre-gyp

Windows fires off three builds from source simultaneously

Open
#420 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
1.2k
Forks
271
Avg merge
23h 40m
Merged PRs (30d)
2

Description

```
C:\dev\magic>npm i

> bcrypt@3.0.2 install C:\dev\magic\node_modules\bcrypt
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp WARN Pre-built binaries not installable for bcrypt@3.0.2 and node@8.12.0 (node-v57 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error Remote end closed socket abruptly.
node-pre-gyp WARN Pre-built binaries not installable for bcrypt@3.0.2 and node@8.12.0 (node-v57 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error Remote end closed socket abruptly.
node-pre-gyp WARN Pre-built binaries not installable for bcrypt@3.0.2 and node@8.12.0 (node-v57 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error bad download
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
```
Which then of course explodes with MSVC trying to generate the same files 3x (in use locking, crash, die)

Assuming it is from the harsh hangup not being caught and handled, leaving three "build from source" jobs in the promise basket? Instead of properly destroying the previous attempt and any fallouts from it before doing the 2nd and 3rd retries

While hanging up is not 'nice' there should be no difference from when the server politely said 404.

Installation worked fine once (3 days later) I figured out that `--build-from-source` to completely skip the silly binary blob checking, made it work fine. I was reinstalling everything MSVS for days, thanks.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing npm i with node-pre-gyp install --fallback-to-build on Windows when the binary download ends abruptly. Compare this with --build-from-source and the 404 case, focusing on whether retries leave multiple source-build jobs running. Done means an interrupted download does not start concurrent MSVC builds for the same installation.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
build-system, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.