GeezerVison is showing github.com — 2026-09-08, Version 24.21.0 'Krypton' (LTS) by github-actions[bot] · Pull Request #65873 · nodejs/node
Conversation
github-actions
Bot
commented
Sep 7, 2026
•
edited by aduh95
Loading
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Accept WHATWG URL objects in private-key inputs and load referenced keys
through OpenSSL STORE loaders. Pass optional property queries and
passphrases while preserving provider-owned EVP_PKEY objects for
ordinary KeyObject and CryptoKey operations.
Signed-off-by: Filip Skokan <[email protected]>
PR-URL: #63949
Backport-PR-URL: #65426
Reviewed-By: Antoine du Hamel <[email protected]>
Treat detached ArrayBuffers and Buffer or TypedArray views backed by
them as zero-length inputs in buffer.isUtf8() and buffer.isAscii(). Both
functions now return true for these inputs, consistent with other empty
inputs.
Signed-off-by: Archkon <[email protected]>
PR-URL: #64504
Fixes: #64503
Reviewed-By: James M Snell <[email protected]>
File write streams inherit the default byte-stream highWaterMark.
The fixed 16 KiB value became stale when that default changed.
Also document the Windows-specific byte-stream default.
Signed-off-by: umuoy1 <[email protected]>
PR-URL: #64617
Reviewed-By: Chengzhong Wu <[email protected]>
The startup failure always appended the OpenSSL error queue, so when
Node.js itself detected the missing fips provider it printed an error
header followed by nothing. Report the reason instead.
Signed-off-by: Filip Skokan <[email protected]>
PR-URL: #64979
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
OpenSSL reports FIPS mode as disabled after a successful
EVP_default_properties_enable_fips(..., 0) call. Do not treat that
disabled state as a failure.
Add OpenSSL 3 regression coverage that verifies the state is enabled
before disabling it again.
Signed-off-by: Filip Skokan <[email protected]>
PR-URL: #64982
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
A missing OPENSSL_VERSION_NUMBER macro raises TypeError while the
configure logic attempts to slice None. Treat that like the other
version detection failures so configure warns and records version 0.
Signed-off-by: Filip Skokan <[email protected]>
PR-URL: #64982
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
openssl_is_fips is always the string "true" or "false", so testing
whether it is non-empty always adds OPENSSL_FIPS to mkssldef. Add the
define only when FIPS was requested.
Signed-off-by: Filip Skokan <[email protected]>
PR-URL: #64982
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
Distinguish OpenSSL 3 provider setup from FIPS/property-query state,
document configuration precedence and provider limitations, and retain
the OpenSSL 1.1 and runtime control guidance.
Regenerate the CLI manpage.
Signed-off-by: Filip Skokan <[email protected]>
PR-URL: #64982
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
If `nChangeset == 0`, the pointer `pChangeset` may be nullptr.
Passing a nullptr to `memcpy()` is undefined behaviour.
This can be triggered by running the test suite under UBSAN.
Signed-off-by: ndossche <[email protected]>
PR-URL: #63637
Reviewed-By: René <[email protected]>
* fix duplicate address insertion in SocketAddressBlockList
* fix BlockList rule listing order to match apply
* add minor bound check in BlockList
* improve performance of BlockList apply
* eliminating shared_ptr
* check fast api path
* add clear method to BlockList
* general storage improvements to BlockList
* use shared locks for BlockList reads
* add bulk address adding to BlockList
* add BlockList benchmark
* add remove range/subnet to BlockList
* add cidr notation parsing to BlockList
* add additional apis to BlockList
* add private subnet presets to BlockList
Signed-off-by: James M Snell <[email protected]>
Assisted-by: OpenCode/Opus
PR-URL: #64974
Reviewed-By: Tim Perry <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Ethan Arrowood <[email protected]>
Recheck the stream state after signaling abort, as required by steps 3
and 4 of the WritableStreamAbort algorithm.
Only reject pending close promise caches, as a cache materialized after
the stream becomes errored may already contain a rejected promise.
This makes the recursive abort WPT pass and removes its expected-failure
entry.
Refs: https://streams.spec.whatwg.org/#writable-stream-abort
Signed-off-by: Jeong SeokChan <[email protected]>
PR-URL: #64825
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Mattias Buelens <[email protected]>
SQLTagStore reused cached statements without clearing values bound by a
previous execution. Clear bindings before binding new values and reject
parameters that do not correspond to template substitutions.
Signed-off-by: Matteo Collina <[email protected]>
PR-URL: #65041
Reviewed-By: René <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
tls.connect() with malformed ALPNProtocols hit
CHECK_EQ(0, SSL_set_alpn_protos(...)) in the C++ layer and aborted
the process with SIGABRT.
Validate in JS instead, in convertALPNProtocols, so both client and
server fail early with a recoverable ERR_INVALID_ARG_VALUE:
- zero-length string protocols now throw from convertProtocols
- wire-format buffers are checked for zero-length and truncated
entries
- an empty buffer or array is still accepted and means skip ALPN,
matching the historical behavior for []
The C++ CHECK_EQ is left unchanged: once JS has validated the input,
a non-zero SSL_set_alpn_protos return is an internal invariant
failure rather than user-facing input.
Fixes: #65069
Signed-off-by: Sankalp Thakur <[email protected]>
PR-URL: #65076
Reviewed-By: Tim Perry <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
The encode-and-enqueue transform walked the chunk code unit by code
unit, materializing a single-character string per index and building
the output with string concatenation. The only state that crosses
chunks is a trailing high (leading) surrogate, and TextEncoder.encode's
USVString conversion already replaces every interior lone surrogate
with U+FFFD, which is exactly what the spec loop produces. Join a
pending high surrogate with the incoming chunk, hold back a new
trailing high surrogate, and encode the rest in a single native call.
The streaming decode path also reuses a single options object instead
of allocating { stream: true } per chunk.
An encoding-streams benchmark is added since the suite had no
TextEncoderStream/TextDecoderStream row. Encoding improves by ~546%
with 1KB string chunks and ~20% with 16-character chunks; decode is
unchanged.
Signed-off-by: Matteo Collina <[email protected]>
PR-URL: #65414
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Mattias Buelens <[email protected]>
Normalize each stateless transform result before passing it to
the next transform in a fused run. This ensures that subsequent
transforms always receive Uint8Array[] batches in both synchronous
and asynchronous pipelines.
Signed-off-by: Kamat, Trivikram <[email protected]>
Assisted-by: codex:gpt-5.6-sol
PR-URL: #65367
Fixes: #65366
Reviewed-By: James M Snell <[email protected]>
While more readable, the removed closure overhead unlocks 10-20% in
eventtarget.js benchmark.
Signed-off-by: Szymon Łągiewka <[email protected]>
PR-URL: #64473
Reviewed-By: Chemi Atlow <[email protected]>
AIX can report lo0 as the scope ID for a datagram sent to a local
interface. Validate that the received address includes a non-empty
scope ID and verify that the address can be used to reply, instead of
requiring the scope ID to match the destination interface.
Refs: #46792
Assisted-by: Codex
Signed-off-by: Filip Skokan <[email protected]>
PR-URL: #65629
Refs: #46792
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Node.js 24 does not include the later stream lifecycle changes that the
original fix relies on. Preserve its reset ordering, avoid JavaScript
callbacks after a deferred session close, and let destroyed streams
finish without requesting trailers.
Signed-off-by: Matteo Collina <[email protected]>
Refs: #64166
PR-URL: #65093
Reviewed-By: Antoine du Hamel <[email protected]>
Notable changes:
crypto:
* update root certificates to NSS 3.126 (Node.js GitHub Bot) #65495
* (SEMVER-MINOR) support loading private keys through STORE loaders (Filip Skokan) #63949
deps:
* update OpenSSL to 3.5.8 (Node.js GitHub Bot) #65542
* update Undici to 7.29.1 (Node.js GitHub Bot) #65789
lib,src:
* (SEMVER-MINOR) improve histogram implementation (James M Snell) #65024
net:
* (SEMVER-MINOR) improve performance of `net.BlockList` (James M Snell) #64974
perf_hooks:
* (SEMVER-MINOR) add statistical hypothesis testing to histogram (James M Snell) #65416
util:
* (SEMVER-MINOR) add non-throwing `MIMEType.parse` (James M Snell) #64965
PR-URL: #65873
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.33%. Comparing base (71b8b17) to head (955266b).
⚠️ Report is 1 commits behind head on v24.x.
Additional details and impacted files
@@ Coverage Diff @@
## v24.x #65873 +/- ##
==========================================
+ Coverage 90.25% 90.33% +0.07%
==========================================
Files 712 714 +2
Lines 228693 231862 +3169
Branches 43213 43952 +739
==========================================
+ Hits 206405 209446 +3041
- Misses 14146 14150 +4
- Partials 8142 8266 +124
see 154 files with indirect coverage changes
🚀 New features to boost your workflow:
- ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
aduh95
added a commit
that referenced
this pull request
Sep 8, 2026
Notable changes:
crypto:
* update root certificates to NSS 3.126 (Node.js GitHub Bot) #65495
* (SEMVER-MINOR) support loading private keys through STORE loaders (Filip Skokan) #63949
deps:
* update OpenSSL to 3.5.8 (Node.js GitHub Bot) #65542
* update Undici to 7.29.1 (Node.js GitHub Bot) #65789
lib,src:
* (SEMVER-MINOR) improve histogram implementation (James M Snell) #65024
net:
* (SEMVER-MINOR) improve performance of `net.BlockList` (James M Snell) #64974
perf_hooks:
* (SEMVER-MINOR) add statistical hypothesis testing to histogram (James M Snell) #65416
util:
* (SEMVER-MINOR) add non-throwing `MIMEType.parse` (James M Snell) #64965
PR-URL: #65873
Reviewers
aduh95
aduh95 approved these changes
Uh oh!
There was an error while loading. Please reload this page.
Labels
release
Issues and PRs related to Node.js releases.
v24.x
Issues that can be reproduced on v24.x or PRs targeting the v24.x-staging branch.
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|