You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[BUG] freeSocketTimeout is used when an active request is being made #106
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:
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
; 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.
changed the title [-]freeSocketTimeout is used when an active request is being made[/-][+][BUG] freeSocketTimeout is used when an active request is being made[/+]on Aug 26, 2022
Because my server (or client) doesn't finish within 800ms, ERR_SOCKET_TIMEOUT is thrown, as the timeout is actually 800ms and the socket tried to close with an active request.
While I don't have a clear picture if our server is slow or client is slow, the 5 minute default fetch-timeout from NPM should ideally still be used, I believe.
Activity
[-]freeSocketTimeout is used when an active request is being made[/-][+][BUG] freeSocketTimeout is used when an active request is being made[/+]making3 commentedon Aug 26, 2022
To pull in some of the debug logs and to hopefully make sense of them:
From my understanding, the following sequence of events happen:
sock[0#0.0.0.0:8089:0]).While I don't have a clear picture if our server is slow or client is slow, the 5 minute default fetch-timeout from NPM should ideally still be used, I believe.