Beth Griggs
128ed10fc4
module: update expected module.parent DEP number
...
PR-URL: https://github.com/nodejs/node/pull/34368
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Myles Borins <myles.borins@gmail.com >
2020-07-15 11:37:39 -04:00
Bradley Farias
66810a0d47
policy: add startup benchmark and make SRI lazier
...
PR-URL: https://github.com/nodejs/node/pull/29527
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-14 13:03:04 -05:00
Michaël Zasso
05539c166a
repl: support --loader option in builtin REPL
...
Fixes: https://github.com/nodejs/node/issues/33435
PR-URL: https://github.com/nodejs/node/pull/33437
Reviewed-By: Gus Caplan <me@gus.host >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
2020-07-14 15:21:26 +02:00
Anna Henningsen
1274f89b8c
worker: fix nested uncaught exception handling
...
We are using `ObjectPrototypeToString()` as a cross-context brand check
for built-in errors, but weren’t making sure to set that when
deserializing errors back into JS objects.
Fix that by setting `[Symbol.toStringTag]` manually, to make sure that
multiple serialize-and-deserialize cycles keep giving the same result.
Fixes: https://github.com/nodejs/node/issues/34309
PR-URL: https://github.com/nodejs/node/pull/34310
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-14 15:08:21 +02:00
Anna Henningsen
725cf4764a
worker: add option to track unmanaged file descriptors
...
Add a public option for Workers which adds tracking for raw
file descriptors, as currently, those resources are not cleaned
up, unlike e.g. `FileHandle`s.
PR-URL: https://github.com/nodejs/node/pull/34303
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2020-07-14 15:07:20 +02:00
Anna Henningsen
460c81dc0e
async_hooks: improve resource stack performance
...
Removes some of the performance overhead that came with
`executionAsyncResource()` by using the JS resource array
only as a cache for the values provided by C++. The fact that we now
use an entry trampoline is used to pass the resource without
requiring extra C++/JS boundary crossings, and the direct accesses
to the JS resource array from C++ are removed in all fast paths.
This particularly improves performance when async hooks are not
being used.
This is a continuation of https://github.com/nodejs/node/pull/33575
and shares some of its code with it.
./node benchmark/compare.js --new ./node --old ./node-master --runs 30 --filter messageport worker | Rscript benchmark/compare.R
[00:06:14|% 100| 1/1 files | 60/60 runs | 2/2 configs]: Done
confidence improvement accuracy (*) (**) (***)
worker/messageport.js n=1000000 payload='object' ** 12.64 % ±7.30% ±9.72% ±12.65%
worker/messageport.js n=1000000 payload='string' * 11.08 % ±9.00% ±11.98% ±15.59%
./node benchmark/compare.js --new ./node --old ./node-master --runs 20 --filter async-resource-vs-destroy async_hooks | Rscript benchmark/compare.R
[00:22:35|% 100| 1/1 files | 40/40 runs | 6/6 configs]: Done
confidence improvement accuracy (*)
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-local-storage' benchmarker='autocannon' 1.60 % ±7.35%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-resource' benchmarker='autocannon' 6.05 % ±6.57%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='destroy' benchmarker='autocannon' * 8.27 % ±7.50%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-local-storage' benchmarker='autocannon' 7.42 % ±8.22%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-resource' benchmarker='autocannon' 4.33 % ±7.84%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='destroy' benchmarker='autocannon' 5.96 % ±7.15%
(**) (***)
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-local-storage' benchmarker='autocannon' ±9.84% ±12.94%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-resource' benchmarker='autocannon' ±8.81% ±11.60%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='destroy' benchmarker='autocannon' ±10.07% ±13.28%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-local-storage' benchmarker='autocannon' ±11.01% ±14.48%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-resource' benchmarker='autocannon' ±10.50% ±13.81%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='destroy' benchmarker='autocannon' ±9.58% ±12.62%
Refs: https://github.com/nodejs/node/pull/33575
PR-URL: https://github.com/nodejs/node/pull/34319
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de >
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com >
2020-07-14 13:14:27 +02:00
Mateusz Krawczuk
2e6c3e2301
tls: make 'createSecureContext' honor more options
...
Added options: `ticketKeys` and `sessionTimeout`, that are honored by
`createServer`, that calls `createSecureContext`.
This also introduces a minor code simplification.
PR-URL: https://github.com/nodejs/node/pull/33974
Fixes: https://github.com/nodejs/node/issues/20908
Reviewed-By: Alba Mendez <me@alba.sh >
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org >
2020-07-13 10:48:32 +02:00
Robert Nagy
4e3f6f355b
stream: cleanup and fix Readable.wrap
...
Cleans up Readable.wrap and also ensures destroy
is called for certain events.
PR-URL: https://github.com/nodejs/node/pull/34204
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-11 22:41:18 +02:00
James M Snell
c176d5fac2
quic: set destroyed at timestamps for duration calculation
...
PR-URL: https://github.com/nodejs/node/pull/34262
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-10 13:51:18 -07:00
James M Snell
48a349efd9
quic: use Number instead of BigInt for more stats
...
PR-URL: https://github.com/nodejs/node/pull/34262
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-10 13:51:16 -07:00
James M Snell
5e769b2eaf
quic: use less specific error codes
...
Stop the madness. Only you can prevent excessive error code
proliferation.
PR-URL: https://github.com/nodejs/node/pull/34262
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-10 13:51:13 -07:00
Guy Bedford
1237955d41
module: package "imports" field
...
PR-URL: https://github.com/nodejs/node/pull/34117
Reviewed-By: Jan Krems <jan.krems@gmail.com >
Reviewed-By: Bradley Farias <bradley.meck@gmail.com >
2020-07-09 19:19:35 -07:00
James M Snell
458d243f20
quic: proper custom inspect for QuicStream
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:15:44 -07:00
James M Snell
0860b11655
quic: proper custom inspect for QuicSession
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:15:44 -07:00
James M Snell
b047930d76
quic: proper custom inspect for QuicSocket
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:15:44 -07:00
James M Snell
511f8c1138
quic: proper custom inspect for QuicEndpoint
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:15:43 -07:00
James M Snell
fe11f6bf7c
quic: cleanup QuicSocketFlags, used shared state struct
...
Some of the flags were no longer being used.
Switched to use an AliasedStruct for shared state to avoid
extraneous expensive JS=>C++ calls.
Removed unused QuicSocket option
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:15:43 -07:00
James M Snell
d08e99de24
quic: use getter/setter for stateless reset toggle
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:15:43 -07:00
James M Snell
71236097d0
quic: use Number() instead of bigint for QuicSocket stats
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:14:17 -07:00
James M Snell
94372b124a
quic: refactor/improve/document QuicSocket listening event
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:14:14 -07:00
James M Snell
afc9390ae5
quic: refactor/improve QuicSocket ready event handling
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:14:12 -07:00
James M Snell
cc89aac5f7
quic: refactor/improve error handling for busy event
...
Also, change setServerBusy into a setter
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:14:07 -07:00
James M Snell
edc71ef008
quic: handle errors thrown / rejections in the session event
...
Errors thrown within the session event handler will be handled
by destroying the session (allowing a proper connection close
to be sent to the client peer). They will not crash the parent
QuicSocket by default. Instead, a `'sessionError'` event will
be emitted, allowing the error to be logged or handled.
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:14:05 -07:00
James M Snell
bcde849be9
quic: remove unnecessary bool conversion
...
The argument will always be a boolean already
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:14:02 -07:00
Robert Nagy
e8f57456be
http: add note about timer unref
...
PR-URL: https://github.com/nodejs/node/pull/34143
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com >
2020-07-09 09:14:12 +02:00
rickyes
527e2147af
stream: add promises version to utility functions
...
PR-URL: https://github.com/nodejs/node/pull/33991
Fixes: https://github.com/nodejs/node/issues/33582
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Denys Otrishko <shishugi@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com >
Reviewed-By: Robert Nagy <ronagy@icloud.com >
2020-07-09 09:12:19 +02:00
Anna Henningsen
2243d79f74
domain: fix unintentional deprecation warning
...
646e5a4717 changed the way that the domain hook callback
is called. Previously, the callback was only used in the case that
async_hooks were *not* being used (since domains already integrate
with async hooks the way they should), and the corresponding
deprecation warning also only emitted in that case.
However, that commit didn’t move that condition along when the code
was ported from C++ to JS. As a consequence, the domain hook callback
was used when it wasn’t necessary to use it, and the deprecation
warning emitted accidentally along with it.
Refs: https://github.com/nodejs/node/commit/646e5a471766e27e8317bb54d1fd1d2c72cffb69#diff-9f21ce1b9d6d46fdd07b969e8a04e140L192
Refs: https://github.com/nodejs/node/commit/646e5a471766e27e8317bb54d1fd1d2c72cffb69#diff-e6db408e12db906ead6ddfac3de15a6fR119
Refs: https://github.com/nodejs/node/pull/33801#issuecomment-654744913
PR-URL: https://github.com/nodejs/node/pull/34245
Fixes: https://github.com/nodejs/node/issues/34069
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com >
Reviewed-By: Shelley Vohr <codebytere@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de >
Reviewed-By: Gus Caplan <me@gus.host >
Reviewed-By: Andrey Pechkurov <apechkurov@gmail.com >
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com >
2020-07-07 22:08:16 +02:00
sapics
ee3416b055
lib: replace http to https of comment link urls
...
PR-URL: https://github.com/nodejs/node/pull/34158
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-06 07:03:08 -07:00
Rich Trott
ddfaafa9b0
repl: fix verb conjugation in deprecation message
...
PR-URL: https://github.com/nodejs/node/pull/34198
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
Reviewed-By: Zeyu Yang <himself65@outlook.com >
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-06 07:00:44 -07:00
James M Snell
3837d9cf1f
quic: fixup lint issues
...
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:36 -07:00
James M Snell
7b062ca015
quic: refactor qlog handling
...
Because of the timing of qlog events emitted by ngtcp2, it
becomes difficult to handle those as events on the QuicSession
object because the final qlog entry is not emitted until the
ngtcp2_conn is freed, which can occur when the object is being
garbage collected (meaning, we a: can't call out to javascript
and b: don't have an object we can use to emit the event).
This refactors it into a QLogStream object that allows the
qlog data to be piped out using a separate Readable stream.
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:33 -07:00
James M Snell
e4d369e96e
quic: remove onSessionDestroy callback
...
The QuicSession can be destroyed during garbage collection and
the onSessionDestroy callback was happening in the destructor.
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:29 -07:00
James M Snell
3acdd6aac7
quic: refactor QuicSession shared state to use AliasedStruct
...
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:26 -07:00
James M Snell
f9c2245fb5
quic: refactor QuicSession close/destroy flow
...
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:24 -07:00
James M Snell
b5bf5bb20f
quic: refactor native object flags for better readability
...
Use is_* and set_* pattern for native object flags to improve
readability in the code.
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:18 -07:00
Shelley Vohr
37fc587b41
lib: always initialize esm loader callbackMap
...
PR-URL: https://github.com/nodejs/node/pull/34127
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Gus Caplan <me@gus.host >
2020-07-03 14:31:59 -07:00
Anna Henningsen
1d7be3253f
crypto: move typechecking for timingSafeEqual into C++
...
This makes the function more robust against V8 inlining.
Fixes: https://github.com/nodejs/node/issues/34073
PR-URL: https://github.com/nodejs/node/pull/34141
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: Zeyu Yang <himself65@outlook.com >
2020-07-03 12:01:03 -07:00
Robert Nagy
6213fcee9b
stream: save error in state
...
Useful for future PR's to resolve situations where e.g. finished()
is invoked on an already errored streams.
PR-URL: https://github.com/nodejs/node/pull/34103
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Denys Otrishko <shishugi@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2020-07-01 18:22:56 +02:00
Robert Nagy
60a217b1ea
tls: remove unnecessary close listener
...
Wrapped streams are expected to behave the same as socket with handle.
Remove unnecessary difference in handling.
PR-URL: https://github.com/nodejs/node/pull/34105
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com >
2020-07-01 18:18:59 +02:00
Robert Nagy
c7e55c6b72
stream: fix writable.end callback behavior
...
Changes so that the end() callback behaves the same way in relation
to _final as write() does to _write/_writev.
PR-URL: https://github.com/nodejs/node/pull/34101
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-01 18:18:04 +02:00
James M Snell
31d6d9d0f7
quic: reduce duplication of code
...
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:59 -07:00
James M Snell
b5fe31ef19
quic: avoid using private JS fields for now
...
They introduce a significant performance bottleneck at the moment.
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:57 -07:00
James M Snell
b1fab88ff0
quic: remove unused callback function
...
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:52 -07:00
James M Snell
3bae2d5073
quic: consolidate onSessionClose and onSessionSilentClose
...
Use a single callback function for both
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:50 -07:00
James M Snell
73a51bb9dc
quic: cleanups in JS API
...
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:42 -07:00
Robert Nagy
312a4f3255
net: fix bufferSize
...
bufferSize should only look at writableLength otherwise it will
always show more than what is actually pending.
PR-URL: https://github.com/nodejs/node/pull/34088
Refs: https://github.com/nodejs/node/issues/34078
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-06-30 22:36:50 +02:00
Robert Nagy
8f4b4f272e
stream: destroy wrapped streams on error
...
Stream should be destroyed and update state accordingly when
the wrapped stream emits error.
Does some additional cleanup with future TODOs that might be worth
looking into.
PR-URL: https://github.com/nodejs/node/pull/34102
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-06-30 22:35:36 +02:00
Shelley Vohr
c23d2fd3f8
src: allow embedders to disable esm loader
...
PR-URL: https://github.com/nodejs/node/pull/34060
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: David Carlier <devnexen@gmail.com >
Reviewed-By: Gus Caplan <me@gus.host >
2020-06-29 09:12:11 -07:00
Gus Caplan
9e135accbb
wasi: add reactor support
...
PR-URL: https://github.com/nodejs/node/pull/34046
Reviewed-By: Guy Bedford <guybedford@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2020-06-29 09:52:09 -05:00
Andrey Pechkurov
da8a1ef21b
zlib: remove redundant variable in zlibBufferOnEnd
...
PR-URL: https://github.com/nodejs/node/pull/34072
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
2020-06-29 10:35:39 +03:00