Skip to content

node:tls: keep the native handle reading through the handshake when the socket is paused - #35151

Open
robobun wants to merge 7 commits into
mainfrom
farm/cb7e9b8e/tls-pause-before-handshake
Open

node:tls: keep the native handle reading through the handshake when the socket is paused#35151
robobun wants to merge 7 commits into
mainfrom
farm/cb7e9b8e/tls-pause-before-handshake

node:tls: keep the native handle reading through the TLS handshake wh…

e35dbb0
Select commit
Loading
Failed to load commit list.
Claude / Claude Code Review completed Jul 22, 2026 in 30m 58s

Code review found 1 important issue

Found 1 candidates, confirmed 1. See review comments for details.

Details

Severity Count
🔴 Important 1
🟡 Nit 0
🟣 Pre-existing 0
Severity File:Line Issue
🔴 Important test/js/node/tls/node-tls-server.test.ts:1343-1352 readableLength assertion races with independent socket read event

Annotations

Check failure on line 1352 in test/js/node/tls/node-tls-server.test.ts

See this annotation in the file changed.

@claude claude / Claude Code Review

readableLength assertion races with independent socket read event

The reverse-direction round-trip (`srv.write("ack")` → `await once(cli, "data")`) does not causally establish that `cli.write("hello")` has been dispatched to `srv`'s data handler, so the `readableLength: 5` assertion can run with `srv.readableLength === 0` on platforms that don't order ready-fd dispatch (kqueue/macOS, IOCP/Windows). Poll `srv.readableLength` with a bounded deadline (or await a promise resolved from an overridden `srv.push`) instead of using an unrelated round-trip as the barrie