Skip to content

[BUG] freeSocketTimeout is used when an active request is being made #106

Open
@making3

Description

@making3

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:

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

  1. Clone the following repo - https://github.com/making3/agentkeepalive-timeout-issue
  2. Run npm ci
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions