-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
Node >= 16.18.0 breaks npm ci #46188
Comments
Thanks for reporting! Can you provide steps to reproduce? We often need a reproducible example, e.g. some code that allows someone else to recreate your problem by just copying and pasting it. If it involves more than a couple of different file, create a new repository on GitHub and add a link to that. |
Hello @mcollina
Keep in mind that the error does not happen always, but from time to time.
Additionally when disabling audits the issue did not appear. BUT I've tried updating the npm version from npm v8 to v9 and it fixed the issue. |
@nodejs/releasers @nodejs/lts I think we should rever #43902 in v16. |
Hi, Unfortunately, I can't provide steps to reproduce this problem as it randomly occurs. It could be that this issue is triggered by something in our local network environment. Like, I notice that @ccl2of4, @doteric and I use Sonatype Nexus Repository. |
same here on updating NX workspace angular from 15 to 17 in jenkins pipeline - problematic dependency is upgrade @angular-devkit/build-angular to 17.0.0. Install works with Version 15.1.5 and 16.2.10.
|
Version
16.18.0, 16.19.0, 18.3.0
Platform
Linux ip-10-94-32-11 5.15.0-1026-aws #30-Ubuntu SMP Wed Nov 23 14:15:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Subsystem
http
What steps will reproduce the bug?
Execute
npm ci
How often does it reproduce? Is there a required condition?
I am able to reproduce the issue every single time.
What is the expected behavior?
npm ci
should execute successfully.What do you see instead?
Additional information
I originally left a comment on closed issue #44998. In fear that it would never be seen, I've opened a new issue here.
I am currently experiencing this issue on any version of node after 16.18.0. I have tried the latest versions from both the 16 and 18 release channels.
Using git bisect and building node from source, I have narrowed down the problematic commit to
5f406a3a53: http: reuse socket only when it is drained (3 months ago) <ywave620>
. (associated pull request #43902)When I run npm ci on any branch which includes this commit, I encounter this EPIPE error. If I revert the commit and rebuild node, I can see from the logs that the EPIPE error is still emitted, but it is handled properly.
Unfortunately, I'm really not sure what exactly it is about my environment that is causing this EPIPE error, as it doesn't seem like it's affecting very many users at all. I experience the issue running from AWS EC2 or ECS connected to my company's private network using a Transit Gateway. So, there must be something special about my network which triggers this issue.
In the meantime, the best I can currently do is attach a set of detailed logs.
For each of these sets of logs, I ran
DEBUG='*' NODE_DEBUG='*' npm ci
:To quickly find the error in these logs, just search for the string 'EPIPE'. In summary, it looks like in v16.17.1, EPIPE is emitted but handled; in later versions EPIPE is emitted but is unhandled.
Furthermore, in reading through the code on my own, I am seeing a significant quantity of comments labeled
TODO(ronag):
that mention edge cases for error handling. I think may be the unlucky soul who is hitting these edge cases. I think, in particular, this TODO is the one that is doing me in (judging from my log output, as well as some debug statements I've added during my own test runs).Please let me know if there's any further information I can provide for troubleshooting. As it seems like it won't be possible for any Node developers to reproduce this issue, I am more than happy to rebuild and test Node myself with any recommended changes to see if they fix my issue (I can even add additional debug statements and rerun
npm ci
if that helps in any way).Thank you so much for any help!
The text was updated successfully, but these errors were encountered: