Skip to content

worker: add stack size resource limit option - #33085

Closed
addaleax wants to merge 2 commits into
nodejs:masterfrom
addaleax:worker-stack-size
Closed

worker: add stack size resource limit option#33085
addaleax wants to merge 2 commits into
nodejs:masterfrom
addaleax:worker-stack-size

Conversation

@addaleax

Copy link
Copy Markdown
Member

worker: add stack size resource limit option

Add stackSizeMb to the resourceLimit option group.

Refs: #31593 (comment)

(Blocked on the first commit, which is #33084)

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines

Mostly, this introduces a pattern that makes sure that if a custom
error is reported, `stopped_` will be set to `true` correctly in
every cast, which was previously missing for the
`NewContext().IsEmpty()` case (which led to a hard crash from the
`Worker` destructor).

This also leaves TODO comments for a few cases in which
`ERR_WORKER_OUT_OF_MEMORY` was not used in accordance with the
documentation for that error code (or according to its intention).
Fixing that is semver-major.
Add `stackSizeMb` to the `resourceLimit` option group.

Refs: nodejs#31593 (comment)
@addaleax addaleax added semver-minor PRs that contain new features and should be released in the next minor version. blocked PRs that are blocked by other issues or PRs. worker Issues and PRs related to Worker support. labels Apr 27, 2020
@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. labels Apr 27, 2020
@addaleax addaleax removed the lib / src Issues and PRs related to general changes in the lib or src directory. label Apr 27, 2020
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@gireeshpunathil

Copy link
Copy Markdown
Member

commit in #33084 appears here as well, I guess it is an error?

@addaleax

Copy link
Copy Markdown
Member Author

@gireeshpunathil No, see the PR description.

@nodejs-github-bot

nodejs-github-bot commented Apr 27, 2020

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/31007/ (:yellow_heart:)

@addaleax addaleax added the author ready PRs that have at least one approval, no outstanding review comments, and a CI started. label Apr 28, 2020
@addaleax

Copy link
Copy Markdown
Member Author

(Adding author-ready because this can land immediately after #33084 which is also author-ready.)

@addaleax addaleax removed the blocked PRs that are blocked by other issues or PRs. label Apr 29, 2020
@addaleax

Copy link
Copy Markdown
Member Author

Landed in e7b99e0

addaleax added a commit that referenced this pull request Apr 29, 2020
Add `stackSizeMb` to the `resourceLimit` option group.

Refs: #31593 (comment)

PR-URL: #33085
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
@addaleax addaleax closed this Apr 29, 2020
@addaleax
addaleax deleted the worker-stack-size branch April 29, 2020 03:14
targos pushed a commit that referenced this pull request May 4, 2020
Add `stackSizeMb` to the `resourceLimit` option group.

Refs: #31593 (comment)

PR-URL: #33085
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
@targos targos mentioned this pull request May 4, 2020
@MylesBorins

Copy link
Copy Markdown
Contributor

Do we want to backport this to 12.x? It lands cleanly but causes the worker tests to segfault

addaleax added a commit that referenced this pull request Sep 23, 2020
Add `stackSizeMb` to the `resourceLimit` option group.

Refs: #31593 (comment)

PR-URL: #33085
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
codebytere added a commit that referenced this pull request Sep 28, 2020
Notable changes:

async_hooks:
  * add AsyncResource.bind utility (James M Snell) (#34574)
buffer:
  * also alias BigUInt methods (Anna Henningsen) (#34960)
  * alias UInt ➡️ Uint in buffer methods (Anna Henningsen) (#34729)
build:
  * add build flag for OSS-Fuzz integration (davkor) (#34761)
cli:
  * add alias for report-directory to make it consistent (Ash Cripps) (#33587)
crypto:
  * allow KeyObjects in postMessage (Tobias Nießen) (#33360)
  * add randomInt function (Oli Lalonde) (#34600)
deps:
  * upgrade to libuv 1.39.0 (Colin Ihrig) (#34915)
dgram:
  * add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) (#14500)
  * allow typed arrays in .send() (Sarat Addepalli) (#22413)
doc:
  * add basic embedding example documentation (Anna Henningsen) (#30467)
embedding:
  * make Stop() stop Workers (Anna Henningsen) (#32531)
  * provide hook for custom process.exit() behaviour (Anna Henningsen) (#32531)
fs:
  * implement lutimes (Maël Nison) (#33399)
http:
  * return this from IncomingMessage#destroy() (Colin Ihrig) (#32789)
  * expose host and protocol on ClientRequest (wenningplus) [#33803](#33803)
http2:
  * return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) (#33994)
  * do not modify explicity set date headers (Pranshu Srivastava) (#33160)
* n-api**:
  * support type-tagging objects (Gabriel Schulhof) (#28237)
  * provide asynchronous cleanup hooks (Anna Henningsen) (#34572)
perf_hooks:
  * add idleTime and event loop util (Trevor Norris) (#34938)
timers:
  * allow timers to be used as primitives (Denys Otrishko) [#34017](#34017)
tls:
  * make 'createSecureContext' honor more options (Mateusz Krawczuk) (#33974)
worker:
  * add public method for marking objects as untransferable (Anna Henningsen) (#33979)
  * emit `'messagerror'` events for failed deserialization (Anna Henningsen) (#33772)
  * allow passing JS wrapper objects via postMessage (Anna Henningsen) (#33772)
  * allow transferring/cloning generic BaseObjects (Anna Henningsen) (#33772)
  * add option to track unmanaged file descriptors (Anna Henningsen) (#34303)
  * add stack size resource limit option (Anna Henningsen) (#33085)
  * make FileHandle transferable (Anna Henningsen) (#33772)
zlib:
  * add `maxOutputLength` option (unknown) (#33516)

PR-URL: TODO
@codebytere codebytere mentioned this pull request Sep 28, 2020
codebytere added a commit that referenced this pull request Oct 1, 2020
Notable changes:

async_hooks:
  * add AsyncResource.bind utility (James M Snell) (#34574)
buffer:
  * also alias BigUInt methods (Anna Henningsen) (#34960)
  * alias UInt ➡️ Uint in buffer methods (Anna Henningsen) (#34729)
build:
  * add build flag for OSS-Fuzz integration (davkor) (#34761)
cli:
  * add alias for report-directory to make it consistent (Ash Cripps) (#33587)
crypto:
  * allow KeyObjects in postMessage (Tobias Nießen) (#33360)
  * add randomInt function (Oli Lalonde) (#34600)
deps:
  * upgrade to libuv 1.39.0 (Colin Ihrig) (#34915)
dgram:
  * add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) (#14500)
  * allow typed arrays in .send() (Sarat Addepalli) (#22413)
doc:
  * add basic embedding example documentation (Anna Henningsen) (#30467)
embedding:
  * make Stop() stop Workers (Anna Henningsen) (#32531)
  * provide hook for custom process.exit() behaviour (Anna Henningsen) (#32531)
fs:
  * implement lutimes (Maël Nison) (#33399)
http:
  * return this from IncomingMessage#destroy() (Colin Ihrig) (#32789)
  * expose host and protocol on ClientRequest (wenningplus) [#33803](#33803)
http2:
  * return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) (#33994)
  * do not modify explicity set date headers (Pranshu Srivastava) (#33160)
* n-api**:
  * support type-tagging objects (Gabriel Schulhof) (#28237)
  * provide asynchronous cleanup hooks (Anna Henningsen) (#34572)
perf_hooks:
  * add idleTime and event loop util (Trevor Norris) (#34938)
timers:
  * allow timers to be used as primitives (Denys Otrishko) [#34017](#34017)
tls:
  * make 'createSecureContext' honor more options (Mateusz Krawczuk) (#33974)
worker:
  * add public method for marking objects as untransferable (Anna Henningsen) (#33979)
  * emit `'messagerror'` events for failed deserialization (Anna Henningsen) (#33772)
  * allow passing JS wrapper objects via postMessage (Anna Henningsen) (#33772)
  * allow transferring/cloning generic BaseObjects (Anna Henningsen) (#33772)
  * add option to track unmanaged file descriptors (Anna Henningsen) (#34303)
  * add stack size resource limit option (Anna Henningsen) (#33085)
  * make FileHandle transferable (Anna Henningsen) (#33772)
zlib:
  * add `maxOutputLength` option (unknown) (#33516)

PR-URL: TODO
codebytere added a commit that referenced this pull request Oct 4, 2020
Notable changes:

assert:
  * (SEMVER-MINOR) port common.mustCall() to assert (ConorDavenport) #31982
async_hooks:
  * (SEMVER-MINOR) add AsyncResource.bind utility (James M Snell) #34574
buffer:
  * (SEMVER-MINOR) also alias BigUInt methods (Anna Henningsen) #34960
  * (SEMVER-MINOR) alias UInt ➡️ Uint in buffer methods (Anna Henningsen) #34729
build:
  * (SEMVER-MINOR) add build flag for OSS-Fuzz integration (davkor) #34761
cli:
  * (SEMVER-MINOR) add alias for report-directory to make it consistent (Ash Cripps) #33587
crypto:
  * (SEMVER-MINOR) allow KeyObjects in postMessage (Tobias Nießen) #33360
  * (SEMVER-MINOR) add randomInt function (Oli Lalonde) #34600
deps:
  * upgrade to libuv 1.39.0 (Colin Ihrig) #34915
  * upgrade npm to 6.14.7 (claudiahdz) #34468
  * upgrade to libuv 1.38.1 (Colin Ihrig) #34187
dgram:
  * (SEMVER-MINOR) add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) #14500
  * (SEMVER-MINOR) allow typed arrays in .send() (Sarat Addepalli) #22413
doc:
  * (SEMVER-MINOR) Add maxTotalSockets option to agent constructor (rickyes) #33617
  * (SEMVER-MINOR) add basic embedding example documentation (Anna Henningsen) #30467
  * add Ricky Zhou to collaborators (rickyes) #34676
  * add release key for Ruy Adorno (Ruy Adorno) #34628
  * add DerekNonGeneric to collaborators (Derek Lewis) #34602
  * add AshCripps to collaborators (Ash Cripps) #34494
  * add HarshithaKP to collaborators (Harshitha K P) #34417
  * add rexagod to collaborators (Pranshu Srivastava) #34457
  * add release key for Richard Lau (Richard Lau) #34397
  * add danielleadams to collaborators (Danielle Adams) #34360
  * add sxa as collaborator (Stewart X Addison) #34338
  * add ruyadorno to collaborators (Ruy Adorno) #34297
  * (SEMVER-MAJOR) deprecate process.umask() with no arguments (Colin Ihrig) #32499
embedding:
  * (SEMVER-MINOR) make Stop() stop Workers (Anna Henningsen) #32531
  * (SEMVER-MINOR) provide hook for custom process.exit() behaviour (Anna Henningsen) #32531
fs:
  * (SEMVER-MINOR) implement lutimes (Maël Nison) #33399
http:
  * (SEMVER-MINOR) add maxTotalSockets to agent class (rickyes) #33617
  * (SEMVER-MINOR) return this from IncomingMessage#destroy() (Colin Ihrig) #32789
  * (SEMVER-MINOR) expose host and protocol on ClientRequest (wenningplus) #33803
http2:
  * (SEMVER-MINOR) return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) #33994
  * (SEMVER-MINOR) do not modify explicity set date headers (Pranshu Srivastava) #33160
module:
  * (SEMVER-MINOR) named exports for CJS via static analysis (Guy Bedford) #35249
  * (SEMVER-MINOR) exports pattern support (Guy Bedford) #34718
  * (SEMVER-MINOR) package "imports" field (Guy Bedford) #34117
  * (SEMVER-MINOR) deprecate module.parent (Antoine du HAMEL) #32217
n-api:
  * (SEMVER-MINOR) create N-API version 7 (Gabriel Schulhof) #35199
  * (SEMVER-MINOR) support type-tagging objects (Gabriel Schulhof) #28237
n-api,src:
  * (SEMVER-MINOR) provide asynchronous cleanup hooks (Anna Henningsen) #34572
perf_hooks:
  * (SEMVER-MINOR) add idleTime and event loop util (Trevor Norris) #34938
timers:
  * (SEMVER-MINOR) allow timers to be used as primitives (Denys Otrishko) #34017
tls:
  * (SEMVER-MINOR) make 'createSecureContext' honor more options (Mateusz Krawczuk) #33974
worker:
  * (SEMVER-MINOR) add public method for marking objects as untransferable (Anna Henningsen) #33979
  * (SEMVER-MINOR) emit `'messagerror'` events for failed deserialization (Anna Henningsen) #33772
  * (SEMVER-MINOR) allow passing JS wrapper objects via postMessage (Anna Henningsen) #33772
  * (SEMVER-MINOR) allow transferring/cloning generic BaseObjects (Anna Henningsen) #33772
  * (SEMVER-MINOR) add option to track unmanaged file descriptors (Anna Henningsen) #34303
  * (SEMVER-MINOR) add stack size resource limit option (Anna Henningsen) #33085
worker,fs:
  * (SEMVER-MINOR) make FileHandle transferable (Anna Henningsen) #33772
zlib:
  * (SEMVER-MINOR) add `maxOutputLength` option (unknown) #33516
  * switch to lazy init for zlib streams (Andrey Pechkurov) #34048

PR-URL: TODO
codebytere added a commit that referenced this pull request Oct 6, 2020
Notable changes:

assert:
  * (SEMVER-MINOR) port common.mustCall() to assert (ConorDavenport) #31982
async_hooks:
  * (SEMVER-MINOR) add AsyncResource.bind utility (James M Snell) #34574
buffer:
  * (SEMVER-MINOR) also alias BigUInt methods (Anna Henningsen) #34960
  * (SEMVER-MINOR) alias UInt ➡️ Uint in buffer methods (Anna Henningsen) #34729
build:
  * (SEMVER-MINOR) add build flag for OSS-Fuzz integration (davkor) #34761
cli:
  * (SEMVER-MINOR) add alias for report-directory to make it consistent (Ash Cripps) #33587
crypto:
  * (SEMVER-MINOR) allow KeyObjects in postMessage (Tobias Nießen) #33360
  * (SEMVER-MINOR) add randomInt function (Oli Lalonde) #34600
deps:
  * upgrade to libuv 1.39.0 (Colin Ihrig) #34915
  * upgrade npm to 6.14.7 (claudiahdz) #34468
  * upgrade to libuv 1.38.1 (Colin Ihrig) #34187
dgram:
  * (SEMVER-MINOR) add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) #14500
  * (SEMVER-MINOR) allow typed arrays in .send() (Sarat Addepalli) #22413
doc:
  * (SEMVER-MINOR) Add maxTotalSockets option to agent constructor (rickyes) #33617
  * (SEMVER-MINOR) add basic embedding example documentation (Anna Henningsen) #30467
  * add Ricky Zhou to collaborators (rickyes) #34676
  * add release key for Ruy Adorno (Ruy Adorno) #34628
  * add DerekNonGeneric to collaborators (Derek Lewis) #34602
  * add AshCripps to collaborators (Ash Cripps) #34494
  * add HarshithaKP to collaborators (Harshitha K P) #34417
  * add rexagod to collaborators (Pranshu Srivastava) #34457
  * add release key for Richard Lau (Richard Lau) #34397
  * add danielleadams to collaborators (Danielle Adams) #34360
  * add sxa as collaborator (Stewart X Addison) #34338
  * add ruyadorno to collaborators (Ruy Adorno) #34297
  * (SEMVER-MAJOR) deprecate process.umask() with no arguments (Colin Ihrig) #32499
embedding:
  * (SEMVER-MINOR) make Stop() stop Workers (Anna Henningsen) #32531
  * (SEMVER-MINOR) provide hook for custom process.exit() behaviour (Anna Henningsen) #32531
fs:
  * (SEMVER-MINOR) implement lutimes (Maël Nison) #33399
http:
  * (SEMVER-MINOR) add maxTotalSockets to agent class (rickyes) #33617
  * (SEMVER-MINOR) return this from IncomingMessage#destroy() (Colin Ihrig) #32789
  * (SEMVER-MINOR) expose host and protocol on ClientRequest (wenningplus) #33803
http2:
  * (SEMVER-MINOR) return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) #33994
  * (SEMVER-MINOR) do not modify explicity set date headers (Pranshu Srivastava) #33160
module:
  * (SEMVER-MINOR) named exports for CJS via static analysis (Guy Bedford) #35249
  * (SEMVER-MINOR) exports pattern support (Guy Bedford) #34718
  * (SEMVER-MINOR) package "imports" field (Guy Bedford) #34117
  * (SEMVER-MINOR) deprecate module.parent (Antoine du HAMEL) #32217
n-api:
  * (SEMVER-MINOR) create N-API version 7 (Gabriel Schulhof) #35199
  * (SEMVER-MINOR) support type-tagging objects (Gabriel Schulhof) #28237
n-api,src:
  * (SEMVER-MINOR) provide asynchronous cleanup hooks (Anna Henningsen) #34572
perf_hooks:
  * (SEMVER-MINOR) add idleTime and event loop util (Trevor Norris) #34938
timers:
  * (SEMVER-MINOR) allow timers to be used as primitives (Denys Otrishko) #34017
tls:
  * (SEMVER-MINOR) make 'createSecureContext' honor more options (Mateusz Krawczuk) #33974
worker:
  * (SEMVER-MINOR) add public method for marking objects as untransferable (Anna Henningsen) #33979
  * (SEMVER-MINOR) emit `'messagerror'` events for failed deserialization (Anna Henningsen) #33772
  * (SEMVER-MINOR) allow passing JS wrapper objects via postMessage (Anna Henningsen) #33772
  * (SEMVER-MINOR) allow transferring/cloning generic BaseObjects (Anna Henningsen) #33772
  * (SEMVER-MINOR) add option to track unmanaged file descriptors (Anna Henningsen) #34303
  * (SEMVER-MINOR) add stack size resource limit option (Anna Henningsen) #33085
worker,fs:
  * (SEMVER-MINOR) make FileHandle transferable (Anna Henningsen) #33772
zlib:
  * (SEMVER-MINOR) add `maxOutputLength` option (unknown) #33516
  * switch to lazy init for zlib streams (Andrey Pechkurov) #34048

PR-URL: TODO
codebytere added a commit that referenced this pull request Oct 6, 2020
Notable changes:

assert:
  * (SEMVER-MINOR) port common.mustCall() to assert (ConorDavenport) #31982
async_hooks:
  * (SEMVER-MINOR) add AsyncResource.bind utility (James M Snell) #34574
buffer:
  * (SEMVER-MINOR) also alias BigUInt methods (Anna Henningsen) #34960
  * (SEMVER-MINOR) alias UInt ➡️ Uint in buffer methods (Anna Henningsen) #34729
build:
  * (SEMVER-MINOR) add build flag for OSS-Fuzz integration (davkor) #34761
cli:
  * (SEMVER-MINOR) add alias for report-directory to make it consistent (Ash Cripps) #33587
crypto:
  * (SEMVER-MINOR) allow KeyObjects in postMessage (Tobias Nießen) #33360
  * (SEMVER-MINOR) add randomInt function (Oli Lalonde) #34600
deps:
  * upgrade to libuv 1.39.0 (Colin Ihrig) #34915
  * upgrade npm to 6.14.7 (claudiahdz) #34468
  * upgrade to libuv 1.38.1 (Colin Ihrig) #34187
dgram:
  * (SEMVER-MINOR) add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) #14500
  * (SEMVER-MINOR) allow typed arrays in .send() (Sarat Addepalli) #22413
doc:
  * (SEMVER-MINOR) Add maxTotalSockets option to agent constructor (rickyes) #33617
  * (SEMVER-MINOR) add basic embedding example documentation (Anna Henningsen) #30467
  * add Ricky Zhou to collaborators (rickyes) #34676
  * add release key for Ruy Adorno (Ruy Adorno) #34628
  * add DerekNonGeneric to collaborators (Derek Lewis) #34602
  * add AshCripps to collaborators (Ash Cripps) #34494
  * add HarshithaKP to collaborators (Harshitha K P) #34417
  * add rexagod to collaborators (Pranshu Srivastava) #34457
  * add release key for Richard Lau (Richard Lau) #34397
  * add danielleadams to collaborators (Danielle Adams) #34360
  * add sxa as collaborator (Stewart X Addison) #34338
  * add ruyadorno to collaborators (Ruy Adorno) #34297
  * (SEMVER-MAJOR) deprecate process.umask() with no arguments (Colin Ihrig) #32499
embedding:
  * (SEMVER-MINOR) make Stop() stop Workers (Anna Henningsen) #32531
  * (SEMVER-MINOR) provide hook for custom process.exit() behaviour (Anna Henningsen) #32531
fs:
  * (SEMVER-MINOR) implement lutimes (Maël Nison) #33399
http:
  * (SEMVER-MINOR) add maxTotalSockets to agent class (rickyes) #33617
  * (SEMVER-MINOR) return this from IncomingMessage#destroy() (Colin Ihrig) #32789
  * (SEMVER-MINOR) expose host and protocol on ClientRequest (wenningplus) #33803
http2:
  * (SEMVER-MINOR) return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) #33994
  * (SEMVER-MINOR) do not modify explicity set date headers (Pranshu Srivastava) #33160
module:
  * (SEMVER-MINOR) named exports for CJS via static analysis (Guy Bedford) #35249
  * (SEMVER-MINOR) exports pattern support (Guy Bedford) #34718
  * (SEMVER-MINOR) package "imports" field (Guy Bedford) #34117
  * (SEMVER-MINOR) deprecate module.parent (Antoine du HAMEL) #32217
n-api:
  * (SEMVER-MINOR) create N-API version 7 (Gabriel Schulhof) #35199
  * (SEMVER-MINOR) support type-tagging objects (Gabriel Schulhof) #28237
n-api,src:
  * (SEMVER-MINOR) provide asynchronous cleanup hooks (Anna Henningsen) #34572
perf_hooks:
  * (SEMVER-MINOR) add idleTime and event loop util (Trevor Norris) #34938
timers:
  * (SEMVER-MINOR) allow timers to be used as primitives (Denys Otrishko) #34017
tls:
  * (SEMVER-MINOR) make 'createSecureContext' honor more options (Mateusz Krawczuk) #33974
worker:
  * (SEMVER-MINOR) add public method for marking objects as untransferable (Anna Henningsen) #33979
  * (SEMVER-MINOR) emit `'messagerror'` events for failed deserialization (Anna Henningsen) #33772
  * (SEMVER-MINOR) allow passing JS wrapper objects via postMessage (Anna Henningsen) #33772
  * (SEMVER-MINOR) allow transferring/cloning generic BaseObjects (Anna Henningsen) #33772
  * (SEMVER-MINOR) add option to track unmanaged file descriptors (Anna Henningsen) #34303
  * (SEMVER-MINOR) add stack size resource limit option (Anna Henningsen) #33085
worker,fs:
  * (SEMVER-MINOR) make FileHandle transferable (Anna Henningsen) #33772
zlib:
  * (SEMVER-MINOR) add `maxOutputLength` option (unknown) #33516
  * switch to lazy init for zlib streams (Andrey Pechkurov) #34048

PR-URL: TODO
codebytere added a commit that referenced this pull request Oct 6, 2020
Notable changes:

assert:
  * (SEMVER-MINOR) port common.mustCall() to assert (ConorDavenport) #31982
async_hooks:
  * (SEMVER-MINOR) add AsyncResource.bind utility (James M Snell) #34574
buffer:
  * (SEMVER-MINOR) also alias BigUInt methods (Anna Henningsen) #34960
  * (SEMVER-MINOR) alias UInt ➡️ Uint in buffer methods (Anna Henningsen) #34729
build:
  * (SEMVER-MINOR) add build flag for OSS-Fuzz integration (davkor) #34761
cli:
  * (SEMVER-MINOR) add alias for report-directory to make it consistent (Ash Cripps) #33587
crypto:
  * (SEMVER-MINOR) allow KeyObjects in postMessage (Tobias Nießen) #33360
  * (SEMVER-MINOR) add randomInt function (Oli Lalonde) #34600
deps:
  * upgrade to libuv 1.39.0 (Colin Ihrig) #34915
  * upgrade npm to 6.14.7 (claudiahdz) #34468
  * upgrade to libuv 1.38.1 (Colin Ihrig) #34187
dgram:
  * (SEMVER-MINOR) add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) #14500
  * (SEMVER-MINOR) allow typed arrays in .send() (Sarat Addepalli) #22413
doc:
  * (SEMVER-MINOR) Add maxTotalSockets option to agent constructor (rickyes) #33617
  * (SEMVER-MINOR) add basic embedding example documentation (Anna Henningsen) #30467
  * add Ricky Zhou to collaborators (rickyes) #34676
  * add release key for Ruy Adorno (Ruy Adorno) #34628
  * add DerekNonGeneric to collaborators (Derek Lewis) #34602
  * add AshCripps to collaborators (Ash Cripps) #34494
  * add HarshithaKP to collaborators (Harshitha K P) #34417
  * add rexagod to collaborators (Pranshu Srivastava) #34457
  * add release key for Richard Lau (Richard Lau) #34397
  * add danielleadams to collaborators (Danielle Adams) #34360
  * add sxa as collaborator (Stewart X Addison) #34338
  * add ruyadorno to collaborators (Ruy Adorno) #34297
  * (SEMVER-MAJOR) deprecate process.umask() with no arguments (Colin Ihrig) #32499
embedding:
  * (SEMVER-MINOR) make Stop() stop Workers (Anna Henningsen) #32531
  * (SEMVER-MINOR) provide hook for custom process.exit() behaviour (Anna Henningsen) #32531
fs:
  * (SEMVER-MINOR) implement lutimes (Maël Nison) #33399
http:
  * (SEMVER-MINOR) add maxTotalSockets to agent class (rickyes) #33617
  * (SEMVER-MINOR) return this from IncomingMessage#destroy() (Colin Ihrig) #32789
  * (SEMVER-MINOR) expose host and protocol on ClientRequest (wenningplus) #33803
http2:
  * (SEMVER-MINOR) return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) #33994
  * (SEMVER-MINOR) do not modify explicity set date headers (Pranshu Srivastava) #33160
module:
  * (SEMVER-MINOR) named exports for CJS via static analysis (Guy Bedford) #35249
  * (SEMVER-MINOR) exports pattern support (Guy Bedford) #34718
  * (SEMVER-MINOR) package "imports" field (Guy Bedford) #34117
  * (SEMVER-MINOR) deprecate module.parent (Antoine du HAMEL) #32217
n-api:
  * (SEMVER-MINOR) create N-API version 7 (Gabriel Schulhof) #35199
  * (SEMVER-MINOR) support type-tagging objects (Gabriel Schulhof) #28237
n-api,src:
  * (SEMVER-MINOR) provide asynchronous cleanup hooks (Anna Henningsen) #34572
perf_hooks:
  * (SEMVER-MINOR) add idleTime and event loop util (Trevor Norris) #34938
timers:
  * (SEMVER-MINOR) allow timers to be used as primitives (Denys Otrishko) #34017
tls:
  * (SEMVER-MINOR) make 'createSecureContext' honor more options (Mateusz Krawczuk) #33974
worker:
  * (SEMVER-MINOR) add public method for marking objects as untransferable (Anna Henningsen) #33979
  * (SEMVER-MINOR) emit `'messagerror'` events for failed deserialization (Anna Henningsen) #33772
  * (SEMVER-MINOR) allow passing JS wrapper objects via postMessage (Anna Henningsen) #33772
  * (SEMVER-MINOR) allow transferring/cloning generic BaseObjects (Anna Henningsen) #33772
  * (SEMVER-MINOR) add option to track unmanaged file descriptors (Anna Henningsen) #34303
  * (SEMVER-MINOR) add stack size resource limit option (Anna Henningsen) #33085
worker,fs:
  * (SEMVER-MINOR) make FileHandle transferable (Anna Henningsen) #33772
zlib:
  * (SEMVER-MINOR) add `maxOutputLength` option (unknown) #33516
  * switch to lazy init for zlib streams (Andrey Pechkurov) #34048

PR-URL: #35401
codebytere added a commit that referenced this pull request Oct 6, 2020
Notable changes:

assert:
  * (SEMVER-MINOR) port common.mustCall() to assert (ConorDavenport) #31982
async_hooks:
  * (SEMVER-MINOR) add AsyncResource.bind utility (James M Snell) #34574
buffer:
  * (SEMVER-MINOR) also alias BigUInt methods (Anna Henningsen) #34960
  * (SEMVER-MINOR) alias UInt ➡️ Uint in buffer methods (Anna Henningsen) #34729
build:
  * (SEMVER-MINOR) add build flag for OSS-Fuzz integration (davkor) #34761
cli:
  * (SEMVER-MINOR) add alias for report-directory to make it consistent (Ash Cripps) #33587
crypto:
  * (SEMVER-MINOR) allow KeyObjects in postMessage (Tobias Nießen) #33360
  * (SEMVER-MINOR) add randomInt function (Oli Lalonde) #34600
deps:
  * upgrade to libuv 1.39.0 (Colin Ihrig) #34915
  * upgrade npm to 6.14.7 (claudiahdz) #34468
  * upgrade to libuv 1.38.1 (Colin Ihrig) #34187
dgram:
  * (SEMVER-MINOR) add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) #14500
  * (SEMVER-MINOR) allow typed arrays in .send() (Sarat Addepalli) #22413
doc:
  * (SEMVER-MINOR) Add maxTotalSockets option to agent constructor (rickyes) #33617
  * (SEMVER-MINOR) add basic embedding example documentation (Anna Henningsen) #30467
  * add Ricky Zhou to collaborators (rickyes) #34676
  * add release key for Ruy Adorno (Ruy Adorno) #34628
  * add DerekNonGeneric to collaborators (Derek Lewis) #34602
  * add AshCripps to collaborators (Ash Cripps) #34494
  * add HarshithaKP to collaborators (Harshitha K P) #34417
  * add rexagod to collaborators (Pranshu Srivastava) #34457
  * add release key for Richard Lau (Richard Lau) #34397
  * add danielleadams to collaborators (Danielle Adams) #34360
  * add sxa as collaborator (Stewart X Addison) #34338
  * add ruyadorno to collaborators (Ruy Adorno) #34297
  * (SEMVER-MAJOR) deprecate process.umask() with no arguments (Colin Ihrig) #32499
embedding:
  * (SEMVER-MINOR) make Stop() stop Workers (Anna Henningsen) #32531
  * (SEMVER-MINOR) provide hook for custom process.exit() behaviour (Anna Henningsen) #32531
fs:
  * (SEMVER-MINOR) implement lutimes (Maël Nison) #33399
http:
  * (SEMVER-MINOR) add maxTotalSockets to agent class (rickyes) #33617
  * (SEMVER-MINOR) return this from IncomingMessage#destroy() (Colin Ihrig) #32789
  * (SEMVER-MINOR) expose host and protocol on ClientRequest (wenningplus) #33803
http2:
  * (SEMVER-MINOR) return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) #33994
  * (SEMVER-MINOR) do not modify explicity set date headers (Pranshu Srivastava) #33160
module:
  * (SEMVER-MINOR) named exports for CJS via static analysis (Guy Bedford) #35249
  * (SEMVER-MINOR) exports pattern support (Guy Bedford) #34718
  * (SEMVER-MINOR) package "imports" field (Guy Bedford) #34117
  * (SEMVER-MINOR) deprecate module.parent (Antoine du HAMEL) #32217
n-api:
  * (SEMVER-MINOR) create N-API version 7 (Gabriel Schulhof) #35199
  * (SEMVER-MINOR) support type-tagging objects (Gabriel Schulhof) #28237
n-api,src:
  * (SEMVER-MINOR) provide asynchronous cleanup hooks (Anna Henningsen) #34572
perf_hooks:
  * (SEMVER-MINOR) add idleTime and event loop util (Trevor Norris) #34938
timers:
  * (SEMVER-MINOR) allow timers to be used as primitives (Denys Otrishko) #34017
tls:
  * (SEMVER-MINOR) make 'createSecureContext' honor more options (Mateusz Krawczuk) #33974
worker:
  * (SEMVER-MINOR) add public method for marking objects as untransferable (Anna Henningsen) #33979
  * (SEMVER-MINOR) emit `'messagerror'` events for failed deserialization (Anna Henningsen) #33772
  * (SEMVER-MINOR) allow passing JS wrapper objects via postMessage (Anna Henningsen) #33772
  * (SEMVER-MINOR) allow transferring/cloning generic BaseObjects (Anna Henningsen) #33772
  * (SEMVER-MINOR) add option to track unmanaged file descriptors (Anna Henningsen) #34303
  * (SEMVER-MINOR) add stack size resource limit option (Anna Henningsen) #33085
worker,fs:
  * (SEMVER-MINOR) make FileHandle transferable (Anna Henningsen) #33772
zlib:
  * (SEMVER-MINOR) add `maxOutputLength` option (unknown) #33516
  * switch to lazy init for zlib streams (Andrey Pechkurov) #34048

PR-URL: #35401
joesepi pushed a commit to joesepi/node that referenced this pull request Jan 8, 2021
Notable changes:

assert:
  * (SEMVER-MINOR) port common.mustCall() to assert (ConorDavenport) nodejs#31982
async_hooks:
  * (SEMVER-MINOR) add AsyncResource.bind utility (James M Snell) nodejs#34574
buffer:
  * (SEMVER-MINOR) also alias BigUInt methods (Anna Henningsen) nodejs#34960
  * (SEMVER-MINOR) alias UInt ➡️ Uint in buffer methods (Anna Henningsen) nodejs#34729
build:
  * (SEMVER-MINOR) add build flag for OSS-Fuzz integration (davkor) nodejs#34761
cli:
  * (SEMVER-MINOR) add alias for report-directory to make it consistent (Ash Cripps) nodejs#33587
crypto:
  * (SEMVER-MINOR) allow KeyObjects in postMessage (Tobias Nießen) nodejs#33360
  * (SEMVER-MINOR) add randomInt function (Oli Lalonde) nodejs#34600
deps:
  * upgrade to libuv 1.39.0 (Colin Ihrig) nodejs#34915
  * upgrade npm to 6.14.7 (claudiahdz) nodejs#34468
  * upgrade to libuv 1.38.1 (Colin Ihrig) nodejs#34187
dgram:
  * (SEMVER-MINOR) add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) nodejs#14500
  * (SEMVER-MINOR) allow typed arrays in .send() (Sarat Addepalli) nodejs#22413
doc:
  * (SEMVER-MINOR) Add maxTotalSockets option to agent constructor (rickyes) nodejs#33617
  * (SEMVER-MINOR) add basic embedding example documentation (Anna Henningsen) nodejs#30467
  * add Ricky Zhou to collaborators (rickyes) nodejs#34676
  * add release key for Ruy Adorno (Ruy Adorno) nodejs#34628
  * add DerekNonGeneric to collaborators (Derek Lewis) nodejs#34602
  * add AshCripps to collaborators (Ash Cripps) nodejs#34494
  * add HarshithaKP to collaborators (Harshitha K P) nodejs#34417
  * add rexagod to collaborators (Pranshu Srivastava) nodejs#34457
  * add release key for Richard Lau (Richard Lau) nodejs#34397
  * add danielleadams to collaborators (Danielle Adams) nodejs#34360
  * add sxa as collaborator (Stewart X Addison) nodejs#34338
  * add ruyadorno to collaborators (Ruy Adorno) nodejs#34297
  * (SEMVER-MAJOR) deprecate process.umask() with no arguments (Colin Ihrig) nodejs#32499
embedding:
  * (SEMVER-MINOR) make Stop() stop Workers (Anna Henningsen) nodejs#32531
  * (SEMVER-MINOR) provide hook for custom process.exit() behaviour (Anna Henningsen) nodejs#32531
fs:
  * (SEMVER-MINOR) implement lutimes (Maël Nison) nodejs#33399
http:
  * (SEMVER-MINOR) add maxTotalSockets to agent class (rickyes) nodejs#33617
  * (SEMVER-MINOR) return this from IncomingMessage#destroy() (Colin Ihrig) nodejs#32789
  * (SEMVER-MINOR) expose host and protocol on ClientRequest (wenningplus) nodejs#33803
http2:
  * (SEMVER-MINOR) return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) nodejs#33994
  * (SEMVER-MINOR) do not modify explicity set date headers (Pranshu Srivastava) nodejs#33160
module:
  * (SEMVER-MINOR) named exports for CJS via static analysis (Guy Bedford) nodejs#35249
  * (SEMVER-MINOR) exports pattern support (Guy Bedford) nodejs#34718
  * (SEMVER-MINOR) package "imports" field (Guy Bedford) nodejs#34117
  * (SEMVER-MINOR) deprecate module.parent (Antoine du HAMEL) nodejs#32217
n-api:
  * (SEMVER-MINOR) create N-API version 7 (Gabriel Schulhof) nodejs#35199
  * (SEMVER-MINOR) support type-tagging objects (Gabriel Schulhof) nodejs#28237
n-api,src:
  * (SEMVER-MINOR) provide asynchronous cleanup hooks (Anna Henningsen) nodejs#34572
perf_hooks:
  * (SEMVER-MINOR) add idleTime and event loop util (Trevor Norris) nodejs#34938
timers:
  * (SEMVER-MINOR) allow timers to be used as primitives (Denys Otrishko) nodejs#34017
tls:
  * (SEMVER-MINOR) make 'createSecureContext' honor more options (Mateusz Krawczuk) nodejs#33974
worker:
  * (SEMVER-MINOR) add public method for marking objects as untransferable (Anna Henningsen) nodejs#33979
  * (SEMVER-MINOR) emit `'messagerror'` events for failed deserialization (Anna Henningsen) nodejs#33772
  * (SEMVER-MINOR) allow passing JS wrapper objects via postMessage (Anna Henningsen) nodejs#33772
  * (SEMVER-MINOR) allow transferring/cloning generic BaseObjects (Anna Henningsen) nodejs#33772
  * (SEMVER-MINOR) add option to track unmanaged file descriptors (Anna Henningsen) nodejs#34303
  * (SEMVER-MINOR) add stack size resource limit option (Anna Henningsen) nodejs#33085
worker,fs:
  * (SEMVER-MINOR) make FileHandle transferable (Anna Henningsen) nodejs#33772
zlib:
  * (SEMVER-MINOR) add `maxOutputLength` option (unknown) nodejs#33516
  * switch to lazy init for zlib streams (Andrey Pechkurov) nodejs#34048

PR-URL: nodejs#35401
ckerr added a commit to electron/electron that referenced this pull request Aug 4, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
ckerr added a commit to electron/electron that referenced this pull request Aug 5, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
ckerr added a commit to electron/electron that referenced this pull request Aug 5, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
ckerr added a commit to electron/electron that referenced this pull request Aug 5, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
ckerr added a commit to electron/electron that referenced this pull request Aug 5, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
ckerr added a commit to electron/electron that referenced this pull request Aug 7, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
jkleinsc pushed a commit to electron/electron that referenced this pull request Aug 20, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
jkleinsc pushed a commit to electron/electron that referenced this pull request Aug 24, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
jkleinsc pushed a commit to electron/electron that referenced this pull request Aug 24, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
jkleinsc pushed a commit to electron/electron that referenced this pull request Aug 24, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
jkleinsc pushed a commit to electron/electron that referenced this pull request Aug 25, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
jkleinsc pushed a commit to electron/electron that referenced this pull request Aug 25, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
jkleinsc pushed a commit to electron/electron that referenced this pull request Aug 25, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
deepak1556 pushed a commit to electron/electron that referenced this pull request Aug 26, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
jkleinsc pushed a commit to electron/electron that referenced this pull request Aug 26, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
deepak1556 added a commit to electron/electron that referenced this pull request Aug 27, 2026
* chore: bump node in DEPS to v24.19.0

* chore: remove upstreamed patch

Ref: nodejs/node#64053

Co-Authored-By: GitHub Copilot <copilot@github.com>

* chore: update patches (trivial only)

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): add perfetto trace agent

Backport Node's Perfetto tracing agent now that Chromium V8 no longer exposes the legacy tracing controller APIs.

Ref: nodejs/node#64565

Ref: nodejs/node#64721

Co-Authored-By: GitHub Copilot <copilot@github.com>

* node#64565: src: rename legacy trace event headers

Ref: nodejs/node#64565

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): sample delay per event loop iteration

Ref: nodejs/node#62935

Ref: nodejs/node#64480

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): avoid redundant std::get_if<>() call

Ref: nodejs/node#64094

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): add perfetto trace agent

Ref: nodejs/node#64565

Co-Authored-By: GitHub Copilot <copilot@github.com>

* node#64053: src: abstract tracing agent for legacy and perfetto

Ref: nodejs/node#64053

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): add perfetto trace agent

Ref: nodejs/node#64565

Co-Authored-By: GitHub Copilot <copilot@github.com>

* node#64053: src: abstract tracing agent for legacy and perfetto

Ref: nodejs/node#64053

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): support native IPC serialization in V8 sandbox

Ref: nodejs/node#63933

Co-Authored-By: GitHub Copilot <copilot@github.com>

* test: hide output package.json in node spec runner

Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package.

Ref: nodejs/node#44713

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): account for libc++ rm error on Electron Linux

Node's fs.rmSync() delegates recursive deletion to
std::filesystem::remove_all(). Electron's Linux build uses libc++, which
reports ENOTEMPTY here while Node's libstdc++ build reports EACCES.

Ref: nodejs/node#57103

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): mark worker stack-size test flaky

Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): restore user timing trace events

Ref: #50591

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): own fallback tracing controller

Ref: nodejs/node#64565

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): release cppgc wrapper tracking nodes

Ref: nodejs/node#56534

Co-Authored-By: GitHub Copilot <copilot@github.com>

* test: extend cpp heap remote app timeout

The ChunkedDataPipeReadableStream liveness test can exceed the remote fixture's 30-second watchdog under Linux ASAN, which disconnects the control socket before assertions run.

Ref: #52447

Co-Authored-By: GitHub Copilot <copilot@github.com>

* fix(patch): remove unused legacy tracing backend

Electron builds Node exclusively with Perfetto since #50591. Wire the upstream Perfetto agent directly and drop the legacy header split and dual-backend source lists.

Ref: #50591

Ref: nodejs/node#64565

Co-Authored-By: GitHub Copilot <copilot@github.com>

* docs: better explanation of test_account_for_libc_rm_error_on_electron_linux.patch

* refactor: node tracing agent and track event registration (#52678)

* fix: register Node tracing in utility processes

The Node upgrade moved tracing setup out of JavascriptEnvironment, but the utility process did not adopt the explicit registration used by other embedded Node hosts. Register its TrackEvent data source with Chromium before creating the isolate.

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>

* chore: update patches (trivial only)

* chore: update patches

* Revert "fix(patch): mark worker stack-size test flaky"

This reverts commit f2e5cb5.

* fixup! support native IPC serialization in V8 sandbox

* chore: address review feedback

* fixup! support native IPC serialization in V8 sandbox

Allocate ValueSerializer buffers as V8 backing stores and retain the
original backing store when adopting the released buffer. This preserves
the shared allocator lifetime when serialized buffers are transferred
from a worker and outlive its isolate.

* fixup! refactor: node tracing agent and track event registration

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: GitHub Copilot <copilot@github.com>
Co-authored-by: Robo <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
jkleinsc pushed a commit to electron/electron that referenced this pull request Aug 27, 2026
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author ready PRs that have at least one approval, no outstanding review comments, and a CI started. c++ Issues and PRs that require attention from people who are familiar with C++. semver-minor PRs that contain new features and should be released in the next minor version. worker Issues and PRs related to Worker support.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants