Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] npm install will randomly hang forever and cannot be closed when this occurs #4028

Open
2 tasks done
Metritutus opened this issue Nov 10, 2021 · 192 comments
Open
2 tasks done
Labels
Bug thing that needs fixing Needs Triage needs review for next steps Release 8.x work is associated with a specific npm 8 release

Comments

@Metritutus
Copy link

Metritutus commented Nov 10, 2021

Is there an existing issue for this?

  • I have searched the existing issues

This issue exists in the latest npm version

  • I am using the latest npm

Current Behavior

When running npm install it will sometimes hang at a random point. When it does this, it is stuck forever. CTRL+C will do nothing the first time that combination is pressed when this has occurred. Pressing that key combination the second time will make the current line (the one showing the little progress bar) disappear but that's it. No further responses to that key combination are observed.

The CMD (or Powershell) window cannot be closed regardless. The process cannot be killed by Task Manager either (Access Denied, although I'm an Administrator user so I'd assume the real reason is something non-permissions related). The only way I have found to close it is to reboot the machine.

My suspicion is it's some sort of deadlock, but this is a guess and I have no idea how to further investigate this. I've tried using Process Explorer to check for handles to files in the project directory from other processes but there are none. There are handles held by the Node process npm is using, and one for the CMD window hosting it, but that's it.

Even running with log-level silly yields no useful information. When it freezes there are no warnings or errors, it just sits on the line it was on. This is some log output from one of the times when it got stuck (I should again emphasise that the point where it gets stuck seems to be random, so the last line shown here isn't always the one it freezes on):

npm timing auditReport:init Completed in 49242ms
npm timing reify:audit Completed in 55729ms
npm timing reifyNode:node_modules/selenium-webdriver Completed in 54728ms
npm timing reifyNode:node_modules/regenerate-unicode-properties Completed in 55637ms
npm timing reifyNode:node_modules/ajv-formats/node_modules/ajv Completed in 56497ms
npm timing reifyNode:node_modules/@angular-devkit/schematics/node_modules/ajv Completed in 56472ms
[##################] \ reify:ajv: timing reifyNode:node_modules/@angular-devkit/schematics/node_modules/ajv Completed in 564

The only thing that I can think of right now is that Bit Defender (the only other application running) is interfering somehow, however it's the one application I can't turn off.

I've seen this issue occur on different projects, on different network and internet connections, and on different machines. Does anyone have any advice on how to investigate this, or at the very least a way to kill the process when it hangs like this without having to reboot the machine? Being forced to reboot when this issue occurs is perhaps the most frustrating thing in all of this.

Expected Behavior

npm install should either succeed or show an error. If it gets stuck it should either time-out or be closable by the user.

Steps To Reproduce

  1. Clear down the node_modules folder (ie with something like rmdir /q /s)
  2. Run. npm install
  3. Watch and wait.
  4. If it succeeds, repeat the above steps until the freeze is observed.

Environment

  • npm: 8.1.3
  • Node: v16.13.0
  • OS: Windows 10 Version 21H1 (OS Build 19043.1288)
  • platform: Lenovo ThinkPad
  • npm config:
; "builtin" config from C:\Users\<REDACTED>\AppData\Roaming\npm\node_modules\npm\npmrc

prefix = "C:\\Users\\<REDACTED>\\AppData\\Roaming\\npm"

; "user" config from C:\Users\<REDACTED>\.npmrc

//pkgs.dev.azure.com/<REDACTED>/_packaging/<REDACTED>/npm/registry/:_authToken = (protected)

; node bin location = C:\Program Files\nodejs\node.exe
; cwd = C:\Users\<REDACTED>
; HOME = C:\Users\<REDACTED>
; Run `npm config ls -l` to show all defaults.
@Metritutus Metritutus added Bug thing that needs fixing Needs Triage needs review for next steps Release 8.x work is associated with a specific npm 8 release labels Nov 10, 2021
@Bizzle-Dapp
Copy link

If there was ever a linked example on "How to report an issue", this would probably be it.

@LegendaryMediaTV
Copy link

I was getting this error last night. It seemed as though all NPM operations were going slow and/or hanging. I tried reinstalling Node/NPM/etc. Not sure if it's related, but last night I also noticed that the NPM site was taking a while to pull up.

It finally seemed to clear itself up about an hour ago and everything has been working for me since. I'm guessing it was something server-side, though NPM's status page doesn't show anything as of yet.

@Metritutus
Copy link
Author

I was getting this error last night. It seemed as though all NPM operations were going slow and/or hanging. I tried reinstalling Node/NPM/etc. Not sure if it's related, but last night I also noticed that the NPM site was taking a while to pull up.

It finally seemed to clear itself up about an hour ago and everything has been working for me since. I'm guessing it was something server-side, though NPM's status page doesn't show anything as of yet.

I'm not sure if that's the same thing. If it were network connection related, I'd assume it would time out at some point. I'd certainly expect to be able to cancel out of the process.

@LegendaryMediaTV
Copy link

I'm not sure if that's the same thing. If it were network connection related, I'd assume it would time out at some point. I'd certainly expect to be able to cancel out of the process.

I would have expected a network connection timeout too, but I waited well over an hour (for things that normally take a minute or less) and the process just sat frozen with a partial progress bar. I was, however, able to cancel out of the process on Windows Terminal, which seems to be the only difference.

I even tried a different machine with a different version of Node/NPM (on a different network in a different city) during that time and it had similar issues (i.e., taking a couple minutes to run npm outdated which normally takes a few seconds), but I didn't actually try an install.

@danmana
Copy link

danmana commented Nov 22, 2021

I've been having the same problem once in a while: npm install is stuck and I can't cancel the process.

For the last few months, this happened rarely, and when it happened I had to restart my laptop to get it working again.

Last week I updated Node from 14 to 16, and npm from 6 to 8. Everything seemed fine until today...

However, today I can't get npm install to finish, not even once.
I've tried restarting my laptop about a dozen times, but it doesn't help.
I've tried npm cache clear --force and deleting node_modules - nothing helps.

I tried npm install --verbose, but I don't get any more info than this:

npm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz 38952ms (cache miss)
npm timing reifyNode:node_modules/@sealsystems/mongo/node_modules/@types/lodash Completed in 45927ms
npm timing reifyNode:node_modules/@sealsystems/assert-mongo-error/node_modules/@types/lodash Completed in 45946ms

Note: it's not always the same dependency that it gets stuck at.

What I've found that seems strange is that as it fetches dependencies it starts getting progressively slower, until it gets stuck (when the timing gets about 30-45 seconds).
Here are some lines from the logs (the lines are in order, but I skipped a lot of them in between)

npm http fetch GET 200 https://registry.npmjs.org/figures 216ms (cache miss)
npm http fetch GET 200 https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz 6802ms (cache miss)
npm http fetch GET 200 https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz 9951ms (cache miss)
npm http fetch GET 200 https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz 11129ms (cache miss)
npm http fetch GET 200 https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz 18008ms (cache miss)
npm http fetch GET 200 https://registry.npmjs.org/@types/stringify-object/-/stringify-object-3.3.0.tgz 26988ms (cache miss)
npm http fetch GET 200 https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz 38952ms (cache miss)

Maybe relevant - I have a few private scoped packages configured in npmrc

@myprivatescope:registry = "https://npm.pkg.github.com/"
//npm.pkg.github.com/:_authToken=ghp_***

though it doesn't seem to get stuck on them

npm http fetch GET 200 https://npm.pkg.github.com/@myprivatescope%2fconsul 515ms (cache miss)

I've tried setting npm config set registry http://registry.npmjs.org/, it seems to move a bit faster in the beginning, but still ends up stuck.

It seems today is not a good day for developing 😢

Windows 10 21H1 build 19043.1348
Node: v16.13.0
NPM: tried with 8.1.3, 8.1.4, 7.19.1 none work
Bitdefender Endpoint Security tools 7.2.2.101 (not sure if this is the issue)

Edit: tried uninstalling node completely, cleaning everything up and reinstalling, but it didn't work ... still stuck

@danmana
Copy link

danmana commented Nov 22, 2021

After trying all day to reinstall and make npm work I ended up:

  1. installing Ubuntu WSL
  2. installing node in ubuntu
  3. Copying my settings to ~/.npmrc

This actually worked, although slowly, it never got stuck npm timing reify Completed in 315565ms

I have no idea why even after purging every reference to node or npm from my laptop and doing a fresh install, it still didn't work on Windows.

@CFT-Chris
Copy link

I've been running into this as well. Happens on reifyNode in the npm output.

npm is latest version (8.3)
platform is ubuntu 21.10

I did just recently update from npm 6.x to latest. One thing I note is the warning message saying package-lock.json is out of date and needs to be rewritten (one-time operation).

For smaller projects, it squeaks by but only after many periods of CPU lock ups and spending more time than it used to with npm version 6.x.

For bigger projects, the only new observation I can add is that the number of node processes running simultaneously explodes, and they are all hogging the CPU and memory. So now memory swap processes enter the mix and the whole computer grinds to a halt.

Eventually I have to killall node if the computer isn't completely locked up, otherwise I have to do a hard reset. I still haven't succeeded to complete the "npm install" on larger projects.

@bernwong
Copy link

I'm having a similar issue after upgrading to node 16.13.1 and npm 8.3.0 (running on centos 7)
As others have mentioned, "npm install" gets progressively slower on the fetches to a point where it completely hangs.

After I downgraded npm back to version 6.14.15 ( npm install -g npm@6 ), the "npm install" completes quickly and successfully.

@CFT-Chris
Copy link

With 8.3.0, I got by installing all the dependencies of my larger projects by running npm install in small subsets of said dependencies, until all were installed.

It appears if you try to install multiple large dependencies at once, there is a greater probability of parallel npm install processes of the subdependencies causing an out-of-memory condition on the computer, which I eventually had to kill in order to gain control of the computer again.

@tekumara
Copy link

In my case it was network related. I had a private registry in npm config and I wasn't on the VPN to access it.

@darkartswizard
Copy link

darkartswizard commented Jan 13, 2022

Seeing this as well on a Mac.
Might be network dropouts.
EDIT: Downgraded to 6.14.15
Restarted machine, cleared cache, removed all packages, deleted node_modules, deleted package-lock.
Then we started putting Dependancies and devDependancies packages back a few at a time.
Eventually got it to build without error.

@begroff
Copy link

begroff commented Jan 15, 2022

I am getting this error as well on a windows PC using the command prompt (cmd.exe). I've tried the following combinations and was able to reproduce the stuckness each time (I was using nvm for windows to switch versions):

node v16.13.1 / npm 8.1.2
node v17.2.0 / npm 8.1.4
node 16.10.0 / npm 7.24.0

I do have AV Defender installed, which I can't disable due to it being a company installed anti-virus software. I was also running Fiddler4 and haven't seen any HTTP errors related.

I then switched to a git bash terminal and was able to run npm install 3 times with version 16.13.1/8.1.2 and no hangs. I also ran npm ci 3 times with no hangs.

My git version installed on windows was 2.17.1.windows.2.

@darkartswizard
Copy link

I'm documenting my adventures in npm. Never occurred to me to switch from ZSH to Bash or use Git Bash. Good post!

@begroff
Copy link

begroff commented Jan 15, 2022

Thanks. I was also able to reproduce the stuckness using PowerShell too. Now if I could figure out how to get my azure pipeline to run git bash I'll be golden. I'm going to try to use the bash task https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/bash?view=azure-devops

@begroff
Copy link

begroff commented Jan 16, 2022

In case anyone is having this issue when running azure pipelines with a self-hosted agent. Below is a solution that worked for me. The only requirement for the server/computer that is running the pipeline is to have git for windows installed so you can access the sh.exe

  - task: CmdLine@2
    displayName: Restore NPM Packages
    inputs:
      script: '"C:\Program Files\Git\bin\sh.exe" --login -c "npm ci"'
      workingDirectory: '' # Directory location where the package.json file is 
      failOnStderr: false
    timeoutInMinutes: 15

@stacy-rendall
Copy link

I have also been seeing this issue since NPM 8 (initially on Node.js 14 and more recently on Node.js 16), Windows 10

It is kind of intermittent, seems to happen more frequently on Bash (from Git for Windows) than PowerShell or CMD

The only workaround I have been able to identify is a complete restart of the system, manually delete node_modules and package-lock.json then run npm i

@CFT-Chris
Copy link

I've found the reason and a workaround for my particular scenario. In my case, I had a dependency on a package from a git repo, which also had a git repo dependency, and it set off an npm install fork bomb, causing out of memory conditions on my machine.

I've logged the specific bug, proposed solution and workaround here: npm/pacote#127 (comment)

@jumpmouse
Copy link

I have this problem for a while now. I thought it that was some problem with my project's node_modules or npm version mismatch problem.

Just now, I tried to install one package globally, and encountered exact same problem.
nodejs 14.18.1
npm 8.1.4

not sure if this helps: with -verbose enabled, this is what I've noticed:

  • npm freezes randomly
  • no relation with cache hit status
  • everything noted before, plus
  • if I wait forever, it takes exactly 143 seconds (!) to move onto next line (don't have screenshot, trust on my word :) ). After 5-10 lines, it continues with normal speed and eventually finishes.

And this is only one package (bigger one, with dependencies).
I've tried with next random one, same thing.

@ljharb
Copy link
Contributor

ljharb commented Mar 8, 2022

@jumpmouse npm 8.1.4 is very old; can you try with v8.5.3?

@jumpmouse
Copy link

@ljharb thanks, I've updated to 8.5.3

Unfortunately, same behavior.
This time I've tried npm i on my medium size Angular project (removed node_modules and cleared cache).

It runs fast, then slows down and freezes.
if I terminate (Ctrl+C) process on freeze and start again, it freezes on same spot.
if I wait forever, it freezes on same line and then on couple more. Each freeze lasts for 2-3 minutes.
Eventually, instalation finishes (after about 7-8 minutes).

@darkartswizard
Copy link

I've had no issue since posting. I was able to narrow down one issue an old wdio and current webdriverio package installed. I removed the sync (fibers) package as well. Then I used ncu to find conflicting package versions. Then ncu -u to update the package. Followed by npm i to create the package-lock. Aside from an occasional unexplained issue with a port-in-use package, my Mac has been relatively stable ever since. Hope this helps.

@rayeaster
Copy link

rayeaster commented Mar 23, 2022

I am getting this error as well on a windows PC using the command prompt (cmd.exe). I've tried the following combinations and was able to reproduce the stuckness each time (I was using nvm for windows to switch versions):

node v16.13.1 / npm 8.1.2 node v17.2.0 / npm 8.1.4 node 16.10.0 / npm 7.24.0

I do have AV Defender installed, which I can't disable due to it being a company installed anti-virus software. I was also running Fiddler4 and haven't seen any HTTP errors related.

I then switched to a git bash terminal and was able to run npm install 3 times with version 16.13.1/8.1.2 and no hangs. I also ran npm ci 3 times with no hangs.

My git version installed on windows was 2.17.1.windows.2.

similar issue on windows10 and took nearly more than one hour to complete

$ node --version
v16.13.2

$ npm --version
8.1.2

...npm timing npm Completed in 4213666ms...

@robertwbradford
Copy link

robertwbradford commented Apr 5, 2022

We have multiple developers in our org (mostly on Macs) also seeing issues like this after going to Node 16. npm ci seems to be especially problematic, but we have noticed it in other commands as well. For example, in one project (a lerna monorepo) we have a "setup" script that runs npm ci and then some various lerna execs. It has got to the point where no one can run it anymore. It just freezes the whole machine and we have to do a hard restart. If you view the "Activity Monitor" while its going, there doesn't seem to be any indication of a problem. The machine just stop responding. Not sure how to even debug this.

@adipascu
Copy link

adipascu commented Apr 5, 2022

I think this is a duplicate of #3078, the fix for this was released in npm v8.6.0

@batressc
Copy link

batressc commented Apr 6, 2022

In my experience, this behavior ocurrs when execute npm install or npm uninstall in a windows console that not is maximized (cmd, powershell, nodejs command prompt, etc.). I don't know why ocurrs this error, but if we can maximize terminals before execute these commands we can avoid the freezing behavior.

I hope this can help you guys.

Best regards from El Salvador.

@robertwbradford
Copy link

npm@8.6.0 did not solve this for us :(

@leoNavarro95
Copy link

I am getting this error as well on a windows PC using the command prompt (cmd.exe). I've tried the following combinations and was able to reproduce the stuckness each time (I was using nvm for windows to switch versions):

node v16.13.1 / npm 8.1.2 node v17.2.0 / npm 8.1.4 node 16.10.0 / npm 7.24.0

I do have AV Defender installed, which I can't disable due to it being a company installed anti-virus software. I was also running Fiddler4 and haven't seen any HTTP errors related.

I then switched to a git bash terminal and was able to run npm install 3 times with version 16.13.1/8.1.2 and no hangs. I also ran npm ci 3 times with no hangs.

My git version installed on windows was 2.17.1.windows.2.

Thanks a lot to mention the git bash terminal solution this save me. I am also ran into this problem that the npm get stuck forever while running on the Windows 10 powershell. So I just ran the npm install in git bash and solved inmediately without any issue.

Now, I wonder why this happens. Please, if anyone knows, I would greatly appreciate it the explanation.

@abine-praveen
Copy link

abine-praveen commented Jul 28, 2024

The actual problem is with the puppeteer version:
The problem is that puppeteer version < 22 is deprecated and this the culprit which is making the "npm i" getting stuck on CI.

The actual fix is to upgrade puppeteer to the version >= 22 this will solve the issue

@adityagoel-hexgit
Copy link

@abine-praveen . Thanks it worked.

@jeff-traba
Copy link

Sorry, I should have checked in as well. Upgrading puppeteer to >=22.0 was also our solution. Havent explored why 21 causes the issue though. theres an issue open puppeteer/puppeteer#12833

@DominoTree
Copy link

FWIW I have a feeling the CI/CD issues being reported here are probably unrelated to the initial report - I haven't had time to dig into it any further, but the behavior sounds different from the total deadlock initially reported

@TrystanCars
Copy link

FWIW I have a feeling the CI/CD issues being reported here are probably unrelated to the initial report - I haven't had time to dig into it any further, but the behavior sounds different from the total deadlock initially reported

Upgrading Puppeteer to @latest completely resolved our CI issues (CircleCI).

@Abdelazizmuhmd
Copy link

I solved the hanging problem in windows by disabling "Controlled Folder Access"

@hyphen81
Copy link

Just started running into timeout issues when running npm ci && npm run build, which seem to be related to puppeteer. Prior to a few days ago, was working without issue. Wondering if others that have recently commented on this thread are also experiencing a regression from previously working deployments? I'm currently running 21.3.8, and hesitant to upgrade.

@abine-praveen
Copy link

Just started running into timeout issues when running npm ci && npm run build, which seem to be related to puppeteer. Prior to a few days ago, was working without issue. Wondering if others that have recently commented on this thread are also experiencing a regression from previously working deployments? I'm currently running 21.3.8, and hesitant to upgrade.

yes, we had our CI pipe-line which was working completely fine and it suddenly started failing and i spent 1 day to figure iut the problem and found this "The actual problem is with the puppeteer version:
The problem is that puppeteer version < 22 is deprecated and this the culprit which is making the "npm i" getting stuck on CI."

@abine-praveen
Copy link

abine-praveen commented Jul 30, 2024

Sorry, I should have checked in as well. Upgrading puppeteer to >=22.0 was also our solution. Havent explored why 21 causes the issue though. theres an issue open puppeteer/puppeteer#12833

Puppeteer has changed the chrome download end-point, that's the reason it is failaing

kzar added a commit to kzar/duckduckgo-privacy-extension that referenced this issue Jul 30, 2024
For some reason having a version of Puppeteer < 22 can cause
`npm install` to hang[1]. Let's update the dependency now therefore.

Note: I needed to update the dependency manually, since one of the
      unit tests needed to be tweaked.

1 - npm/cli#4028
kzar added a commit to duckduckgo/duckduckgo-privacy-extension that referenced this issue Jul 31, 2024
For some reason having a version of Puppeteer < 22 can cause
`npm install` to hang[1]. Let's update the dependency now therefore.

Note: I needed to update the dependency manually, since one of the
      unit tests needed to be tweaked.

1 - npm/cli#4028
@sc0ttdav3y
Copy link

I'll add my solution in case it helps others. I'm building Puppeteer in Docker via AWS Codepipeline on an earlier AWS Linux OS.

Like others, my CI pipeline failed around the end of July 2024. I can't upgrade puppeteer > v21 to this due to underlying dependencies (the OS can't get above Node 16.20, so Puppeteer 21 is the latest I can use).

What ended up working for me was this line in my Dockerfile:

RUN echo "audit=false" > /root/.npmrc

that fixed these commands which were stalling during the chrome download step:

RUN npm i -g puppeteer@$PUPPETEER_VERSION
RUN puppeteer browsers install chrome@$CHROME_VERSION

@igortas
Copy link

igortas commented Aug 12, 2024

npm randomly hangs on concat-map on latest pre-release WSL2 with cleaned node_modules and package-lock... --lts or latest node version

@DominoTree
Copy link

npm randomly hangs on concat-map on latest pre-release WSL2 with cleaned node_modules and package-lock... --lts or latest node version

This is the specific issue I am able to reproduce which (to me) seems to involve DNS lookup timeouts from within the WSL environment

@igortas
Copy link

igortas commented Aug 13, 2024

npm randomly hangs on concat-map on latest pre-release WSL2 with cleaned node_modules and package-lock... --lts or latest node version

This is the specific issue I am able to reproduce which (to me) seems to involve DNS lookup timeouts from within the WSL environment

npm is following the same pattern installing the pckgs... removing lastly added pckgs and re-adding in different order helped me prevent the issue....

@the-xentropy
Copy link

the-xentropy commented Aug 18, 2024

In my experience, this behavior ocurrs when execute npm install or npm uninstall in a windows console that not is maximized (cmd, powershell, nodejs command prompt, etc.). I don't know why ocurrs this error, but if we can maximize terminals before execute these commands we can avoid the freezing behavior.

I hope this can help you guys.

Best regards from El Salvador.

You absolute legend, I would never in a million years have thought to root-cause it down to the window size. Thanks! It's a ridiculous bug, bug at least it has an insanely easy workaround.

FWIW, the bug is present in 10.8.2 (the latest public release as of writing). Unclear what it's caused by, but changing terminals made absolutely no difference to me. Powershell, cmd, and even changing the terminal handler program, made no difference.

Edit: I still need to add --verbose for it to work, but I went from no ability to install anything to being able to install anything very strangely, so ultimately still an improvement.

@keaedwar
Copy link

keaedwar commented Aug 20, 2024

I've been using npm 10.7.0 without a problem for a long time and yesterday, I removed node_modules and ran "npm i" and it hung. spent time yesterday looking for solutions without success. (The maximized window, cmd, PowerShell, Windows Terminal didn't work for me either). This morning I still couldn't get it to work. I just upgraded to npm 10.8.2 and it worked. Other members on my team had npm v10.7.0 and are running without a problem. There must be some external dependency that's causing a problem because I see people running into the hang problem while others with the same installed versions (node & npm) not having any problem.

Windows 10 Enterprise 22H2 Build 19045.4780
node v18.20.3
npm 10.8.2

Just adding a little more detail. We have about 10 web applications where we have no hangs on previous versions of npm. Another developer was using npm 10.7.0 on his own web app and was working fine, but as soon as he went to another web app, it hung. He upgraded to npm 10.8.2 and the web app where it hung now works.

@the-xentropy
Copy link

the-xentropy commented Aug 21, 2024

I've been using npm 10.7.0 without a problem for a long time and yesterday, I removed node_modules and ran "npm i" and it hung. spent time yesterday looking for solutions without success. (The maximized window, cmd, PowerShell, Windows Terminal didn't work for me either). This morning I still couldn't get it to work. I just upgraded to npm 10.8.2 and it worked. Other members on my team had npm v10.7.0 and are running without a problem. There must be some external dependency that's causing a problem because I see people running into the hang problem while others with the same installed versions (node & npm) not having any problem.

Windows 10 Enterprise 22H2 Build 19045.4780 node v18.20.3 npm 10.8.2

Just adding a little more detail. We have about 10 web applications where we have no hangs on previous versions of npm. Another developer was using npm 10.7.0 on his own web app and was working fine, but as soon as he went to another web app, it hung. He upgraded to npm 10.8.2 and the web app where it hung now works.

Try the combination of maximizing it, --verbose, and re-running it a few times (so caches populate). I know it sounds like one of those ridiculous unhelpful tips you see on Quora or Microsoft support forums and such, but it basically is dark magic to solve this.

@the-xentropy
Copy link

the-xentropy commented Aug 21, 2024

I'm writing down all the things I changed/set to solve my issue. I'm unaware of which K of N solved it, but hopefully the list is useful to people trying to chase down this super annoying issue since there's practically zero logs to root-cause it from:

  • I run npm install with --verbose (note: this solved it sporadically on its own)
  • I maximize the terminal (as in, hit the maximize button) (note: this solved it most of the time when combined with --verbose )
  • I set registry = "http://registry.npmjs.org/" in npm config
  • I set loglevel = "info" in npm config
  • I set strict-ssl = false in npm config
  • I set progress = false in npm config
  • I run the most recent npm (10.8.2, as of writing)

After doing the above, it now works every time provided --verbose is set.

More specifically:

npm config set strict-ssl false
npm config set progress false
npm config set loglevel info
npm config set registry http://registry.npmjs.org/ --global

Note that I forgot to set the strict-ssl, loglevel, etc, globally, but in the interest of communicating explicitly what I did and not some variant I'm including my errors as-is. I don't see why you couldn't use --global for all of them, but then I also don't understand the root cause of the issue so I'm leaning towards being overly specific.

Then install things with (in a maximized terminal):

npm install <package> --verbose

As an aside, I can also confirm that I am on Windows. Windows 11 Pro Version 10.0.22631 Build 22631, to be specific.

@igortas
Copy link

igortas commented Aug 28, 2024

npm just love to hang on concat-map...

npm http fetch GET 200 https://registry.npmjs.org/onetime 25ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/siginfo 15ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/stackback 13ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/get-func-name 2ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/shebang-command 3ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/mimic-fn 2ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/shebang-regex 3ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/vscode-jsonrpc 3ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/vscode-languageserver-types 5ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/crc32-stream 2ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/crc-32 1ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/argparse 3ms (cache hit)
npm http fetch GET 200 https://registry.npmjs.org/concat-map 2ms (cache hit)

@pfeileon
Copy link

pfeileon commented Sep 3, 2024

npm randomly hangs on concat-map on latest pre-release WSL2 with cleaned node_modules and package-lock... --lts or latest node version

I suspect that this is actually just coincidence. When I added the packages which depend on concat-map to my package.json, npm got stuck after the package pend (concat-map's and its depending packages' caches have already been updated by then).

Btw, this happens when I remove package-lock.json or execute ng update @angular/cli.

@pfeileon
Copy link

npm randomly hangs on concat-map on latest pre-release WSL2 with cleaned node_modules and package-lock... --lts or latest node version

I suspect that this is actually just coincidence. When I added the packages which depend on concat-map to my package.json, npm got stuck after the package pend (concat-map's and its depending packages' caches have already been updated by then).

Btw, this happens when I remove package-lock.json or execute ng update @angular/cli.

So what I found out is that the process is actually completed successfully in the end, it simply takes forever (i.e. 20+ minutes).

@nickamckenna
Copy link

I have this problem at the Windows command prompt, but using a bash prompt works fine!

@igortas
Copy link

igortas commented Sep 23, 2024

@nickamckenna
Here's how it works fine in bash in WSL2, once again is stucked, famous concat-map!!

npm http fetch GET 200 https://registry.npmjs.org/loupe 108ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/tinyspy 134ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/loupe 154ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/deep-eql 225ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/cac 245ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/stackback 317ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/assertion-error 332ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/check-error 406ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/siginfo 819ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/get-func-name 107ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/vscode-jsonrpc 99ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/vscode-languageserver-types 103ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/crc32-stream 96ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/crc-32 100ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/argparse 102ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/concat-map 61ms (cache revalidated)

@joshuawwright
Copy link

@igortas I have the exact same issue. It can be replicated on WSL 2 Ubuntu 20.04, by running npx create-nx-workspace.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug thing that needs fixing Needs Triage needs review for next steps Release 8.x work is associated with a specific npm 8 release
Projects
None yet
Development

No branches or pull requests