Description
I've been troubleshooting an intermittent issue this week where many developers and our build pipeline will have NPM start erroring with ERR_SOCKET_TIMEOUT
. I've dug in quite a bit and found ERR_SOCKET_TIMEOUT seems to be thrown by this library (which is used internally by the NPM client).
Unfortunately, the only suggestions with ERR_SOCKET_TIMEOUT seem to have no affect on the actual issue which is increasing several NPM configs (fetch-retry-maxtimeout and so on). However, with this issue, none of these options seem to matter.
There are several related issues in the NPM client directly, but I think this still exists in agentkeepalive. Related issues:
- Installing packages (npm)...npm ERR! code ERR_SOCKET_TIMEOUT npm ERR! errno ERR_SOCKET_TIMEOUT npm/cli#4553
- [BUG] Getting constant
FetchError...reason: Socket timeout
when installing packages npm/cli#3078
Current Behavior
agentkeepalive throws ERR_SOCKET_TIMEOUT even though my timeout is set to 60 seconds.
See the Output from the making3/agentkeepalive-timeout-issue for example output.
Expected Behavior
agentkeepalive does not error with ERR_SOCKET_TIMEOUT within my specified timeout (60 seconds).
Steps to Reproduce
- Clone the following repo - https://github.com/making3/agentkeepalive-timeout-issue
- Run
npm ci
- Run one of the following:
DEBUG=agentkeepalive node slow-client.js
DEBUG=agentkeepalive node slow-server.js
Environment
npm: 8.18.0
Node.js: 18.7.0
OS Name: macOS Catalina Version 10.15.7
System Model Name: Macbook Pro
npm config:
; "user" config from /Users/namehere/.npmrc
//localhost:4873/:_authToken = (protected)
cache = "/Users/namehere/.npm"
strict-ssl = true
; node bin location = /Users/namehere/.nvm/versions/node/v18.7.0/bin/node
; node version = v18.7.0
; npm local prefix = /private/tmp/agentkeepalive-timeout-issue
; npm version = 8.18.0
; cwd = /private/tmp/agentkeepalive-timeout-issue
; HOME = /Users/namehere
; Run npm config ls -l
to show all defaults.