Give up a connect after connectTimeout instead of waiting the OS out
Mirror / push (push) Successful in 4s
Test / lint (pull_request) Successful in 21s
Test / test (18) (pull_request) Successful in 22s
Test / test (20) (pull_request) Successful in 18s
Test / test (22) (pull_request) Successful in 18s
Test / test (24) (pull_request) Successful in 19s
Test / test (26) (pull_request) Successful in 27s
Mirror / push (push) Successful in 4s
Test / lint (pull_request) Successful in 21s
Test / test (18) (pull_request) Successful in 22s
Test / test (20) (pull_request) Successful in 18s
Test / test (22) (pull_request) Successful in 18s
Test / test (24) (pull_request) Successful in 19s
Test / test (26) (pull_request) Successful in 27s
This commit is contained in:
@@ -179,16 +179,11 @@ the rewrite, for a dependency added later. Maintainer's call, 2026-09-14.
|
||||
|
||||
## Worth doing, not blocking
|
||||
|
||||
- [ ] **Give up a connect after `connectTimeout` instead of waiting the OS out.** `openSocket()` in
|
||||
`client.ts` settles only on `connect`/`secureConnect`, a socket `error`, or the caller's
|
||||
`signal`, and `reconnect-loop.ts` times nothing but its backoff — so a host that drops SYNs
|
||||
stalls every attempt for the OS TCP timeout, around 130 s on Linux at the default
|
||||
`tcp_syn_retries`, and `reconnect.fromStart` cannot retry what never returns. The option aborts
|
||||
the socket and returns the ordinary connect failure; absent, the wait stays exactly 0.5.0's, so
|
||||
a call passing no options is unchanged (goal 6). Whether a later major makes it a default is
|
||||
the open half. Found comparing 0.5.0 with the seven `larvitsmpp` forks, 2026-09-20 —
|
||||
[SwiftHero/larvitsmpp](https://github.com/SwiftHero/larvitsmpp) added a 10 s connect timeout in
|
||||
2017, and it is the one fork change with no equivalent here.
|
||||
- [ ] **Decide whether a later major gives `connectTimeout` a default.** The option ships absent, so
|
||||
a call passing none waits the OS out as 0.5.0 did — the half the option deliberately left open.
|
||||
A default is a breaking change for anyone relying on that wait, and the minor is the breaking
|
||||
unit until 1.0.0. Needs a number an operator would recognise, where SwiftHero's fork picked
|
||||
10 s.
|
||||
|
||||
- [ ] **A send the codec will refuse waits for a link and a window slot first.** `refuse()` in
|
||||
`outgoing-requests.ts` runs `misuse()` and the abort check before the wait, precisely so a call
|
||||
|
||||
Reference in New Issue
Block a user