-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
Comments
If there was ever a linked example on "How to report an issue", this would probably be it. |
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. |
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 |
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 tried
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).
Maybe relevant - I have a few private scoped packages configured in npmrc
though it doesn't seem to get stuck on them
I've tried setting It seems today is not a good day for developing 😢 Windows 10 21H1 build 19043.1348 Edit: tried uninstalling node completely, cleaning everything up and reinstalling, but it didn't work ... still stuck |
After trying all day to reinstall and make npm work I ended up:
This actually worked, although slowly, it never got stuck 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. |
I've been running into this as well. Happens on npm is latest version (8.3) 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 |
I'm having a similar issue after upgrading to node 16.13.1 and npm 8.3.0 (running on centos 7) After I downgraded npm back to version 6.14.15 ( npm install -g npm@6 ), the "npm install" completes quickly and successfully. |
With 8.3.0, I got by installing all the dependencies of my larger projects by running It appears if you try to install multiple large dependencies at once, there is a greater probability of parallel |
In my case it was network related. I had a private registry in |
Seeing this as well on a Mac. |
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 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 My git version installed on windows was |
I'm documenting my adventures in npm. Never occurred to me to switch from ZSH to Bash or use Git Bash. Good post! |
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 |
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
|
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 |
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 I've logged the specific bug, proposed solution and workaround here: npm/pacote#127 (comment) |
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. not sure if this helps: with
And this is only one package (bigger one, with dependencies). |
@jumpmouse npm 8.1.4 is very old; can you try with v8.5.3? |
@ljharb thanks, I've updated to 8.5.3 Unfortunately, same behavior. It runs fast, then slows down and freezes. |
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. |
similar issue on windows10 and took nearly more than one hour to complete
|
We have multiple developers in our org (mostly on Macs) also seeing issues like this after going to Node 16. |
I think this is a duplicate of #3078, the fix for this was released in npm v8.6.0 |
In my experience, this behavior ocurrs when execute I hope this can help you guys. Best regards from El Salvador. |
|
Thanks a lot to mention the Now, I wonder why this happens. Please, if anyone knows, I would greatly appreciate it the explanation. |
I used a combination of the above comments by @jsbmg and @Tofandel along with nvm install 22.5
npm install -g npm@10.3.0
node -v # output: v22.5.1
npm -v # output: 10.3.0 |
I reverted back to npm@10.3.0 and this resolved the issue. It may have been just happenstance but for now, it appears to work properly. Previous After :
|
I have found the culprit cli/workspaces/arborist/lib/arborist/build-ideal-tree.js Lines 193 to 213 in 780afc5
It's coming from checkPlatform which is done in a loop over each node, inside checkPlatform there is this line https://github.com/npm/npm-install-checks/blob/4751cb40207cf48ac21ac041b0c239e3c10d37e0/lib/current-env.js#L24 This line takes 40seconds by itself to execute (node bug) and the fact is that it's also not promisified in the loop so this is done sequentially for all the 2000 packages in the tree, this effectively would take in theory a whole 70 days for my upgrade command to complete (that's a lot of time to wait 😉) |
It's done concurrently, not sequentially, because it's not |
But it's not async https://github.com/npm/npm-install-checks/blob/main/lib/index.js#L25 so yes it's done sequentially, not concurrently at all, the async keyword in front of #checkEngineAndPlatform does absolutely nothing |
ah, yes, good point :-) |
I had to revert to this version to get my npm install to finish. May end up having to adjust dockerfiles etc. to get this to work for you depending on your use case. |
Switching back to npm 10.3.0 worked for me. Was 10.9.0 before that. |
This issue is getting serious. We had Docker build pipelines starting to build in more than 20 minutes. We had to downgrade to FROM node:22-alpine
RUN npm install -g npm@10.3.0
... |
WSL 2, Ubuntu 22.04 LTS, npm 10.9 Does not work node 20.9.0 Does work Switch from node 20.9 to 22.10 via nvm: |
@Tofandel Thanks for investigating! Any news on when the fix will be available? |
It's out of my hands unfortunately, I opened a PR in node which has been merged, so likely a few weeks for node 22.12.0 and 20.19.0 For npm there is 2 PR's open, one completely bypassing getReport if possible and one only calling it once before any requests I do not know the release schedule of npm, I only know they are preparing npm 11 and it seems this issue even though super widespread and which should be handled with high priority did not get much of the members attention for a patch release before the major release Maybe @reggi can give an answer? |
We've been frustrated by an issue that sounds very similar (or the same) as this one. We have a bunch of Bamboo jobs that run scripts that use Node. We have a project we use for automated testing that uses a lot of npm libraries. "npm install" used to work fine in Node 14. We've updated our Bamboo agents to support Node 16 and Node 17. Build jobs that use those versions now have a strange issue:
I know that 10 or 12 minutes is not the same as "forever." But when you're running a Bamboo build task that usually runs in < 10 sec, and suddenly (randomly) it takes 10 to 12 min, it sure feels like forever! |
node@22.11.0, npm@10.9.0 (caused by process.report.getReport() slowness) |
Yes this is a bit dirty because the report is now generated once at the beginning of a command which could be considered a side effect (but normally treeshaking will only include it only if needed), but the whole process.report is a weirdly built API meant for debugging and not really meant to be used in a normal program But somehow when the call is done in the beginning of the process, this call is very fast, but when it's called after having run a http request (as is currently the case, a single call takes a lot more time to complete, it takes 40s or more on my system when called at the end of npm upgrade) but only a few milliseconds when called at the beginning (this is why it's best to run it outside the function at the beginning of the process as a side effect instead of calling getReport on demand and cache the result) Here is a log of console.time('report') and console.timeEnd('report') before and after the getReport call when run in the end of the upgrade command: ⠼report: 3:10.573 (m:ss.mmm) when run in the beginning of the process at the top level report: 1.943ms This fixes npm hanging npm/cli#4028, npm/cli#7814, npm/cli#7868
This is not the same bug as the rest that were hanging because of However, enough folks have reported unrelated similar cases to this issue, making it a catchall for any time npm seemed to hang. It's impossible to sort them out at this point. If you are experiencing npm hanging in the newest version, please open a new issue so we can look at it in isolation. |
I have a similar issue, but not caused from a 40s delay of
// Cache default values
const _os = currentEnv.os()
const _cpu = currentEnv.cpu()
const _libc = currentEnv.libc(_os)
const checkPlatform = (target, force = false, environment = {}) => {
if (force) {
return
}
// Use cached values as fallback
const os = environment.os || _os;
const cpu = environment.cpu || _cpu;
const libc = environment.libc || _libc; |
@HEllRZA You are late to the party #4028 (comment) This is already solved in npm 10.9.1 |
Not sure if it helps someone because I had a very specific environment, but in my case hanging while |
so, after a days of debugging and trying every possibile solution (mainly reinstalling every possible version of node and npm), with no luck, it was: i needed to add node.exe to a list of "Allow an app to access controlled folders" since my folder was protected by this windows feature.. im running windows 11 heres how to do it: https://support.microsoft.com/en-us/windows/allow-an-app-to-access-controlled-folders-b5b6627a-b008-2ca2-7931-7e51e912b034 |
Ubuntu 24 LTSnvm install 22
# npm install hangs and never finishes
npm install -g npm@10.3.0
# npm now installs |
Use Node does not yet come with npm 10.9.1, which is the version with the fix it only comes with 10.9.0 I think this issue can be locked as it's now an unreadable thread |
Is there an existing issue for this?
This issue exists in the latest npm version
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):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
node_modules
folder (ie with something likermdir /q /s
)npm install
Environment
The text was updated successfully, but these errors were encountered: