Commit Graph
888 Commits
Author SHA1 Message Date
Marek Piechut 4d8b53e475 watch: reload changes in contents of --env-file
Make sure we watch and reload on env file changes.

Ignore env file in parent process, so child process can reload
current vars when we recreate it.

Fixes: https://github.com/nodejs/node/issues/54001
PR-URL: https://github.com/nodejs/node/pull/54109
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2024-08-14 08:14:52 +02:00
Daniel Bayley 19488fd4ce src,test: further cleanup references to osx
PR-URL: https://github.com/nodejs/node/pull/53820
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
2024-07-16 12:06:56 +02:00
Tobias Nießen 5110b19a07 tls: fix negative sessionTimeout handling
For historical reasons, the second argument of SSL_CTX_set_timeout is a
signed integer, and Node.js has so far passed arbitrary (signed) int32_t
values. However, new versions of OpenSSL have changed the handling of
negative values inside SSL_CTX_set_timeout, and we should shield users
of Node.js from both the old and the new behavior. Hence, reject any
negative values by throwing an error from within createSecureContext.

Refs: https://github.com/openssl/openssl/pull/19082
PR-URL: https://github.com/nodejs/node/pull/53002
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tim Perry <pimterry@gmail.com>
2024-05-21 15:50:15 +02:00
Madhuri 5d91cf1976 test: move test-http-server-request-timeouts-mixed to sequential
PR-URL: https://github.com/nodejs/node/pull/45722
Fixes: https://github.com/nodejs/node/issues/43465
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2024-05-12 21:21:54 +02:00
Zack e895f7cf32 watch: enable passthrough ipc in watch mode
PR-URL: https://github.com/nodejs/node/pull/50890
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2024-05-11 18:55:49 +02:00
Moshe Atlow f5d925706a watch: fix arguments parsing
PR-URL: https://github.com/nodejs/node/pull/52760
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
2024-05-08 07:12:36 +02:00
Raz Luvaton ee4fa77624 test: fix watch test with require not testing pid
PR-URL: https://github.com/nodejs/node/pull/52353
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2024-04-11 10:56:02 +00:00
Stefan Stojanovic 45f0dd0192 module,win: fix long path resolve
Fixes: https://github.com/nodejs/node/issues/50753
PR-URL: https://github.com/nodejs/node/pull/51097
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
2024-04-08 14:37:46 +00:00
Raz Luvaton 893e2cf22b watch: fix some node argument not passed to watched process
PR-URL: https://github.com/nodejs/node/pull/52358
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Jacob Smith <jacob@frende.me>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2024-04-07 20:50:45 +00:00
Antoine du Hamel bae14b7914 test: do not set concurrency on parallelized runs
Our CI already run test files in parallel, having `node:test` spawns
child processes concurrently could lead to oversubscribing the CI
machine. This commit sets the `concurrency` depending
on the presence of `TEST_PARALLEL` in the env, so running the test
file individually still spawns child processes concurrently, and
running the whole test suite does not oversubscribe the machine.

PR-URL: https://github.com/nodejs/node/pull/52177
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2024-03-23 21:11:28 +00:00
Antoine du Hamel c714cda9a7 test: add spawnSyncAndAssert util
PR-URL: https://github.com/nodejs/node/pull/52132
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2024-03-20 19:44:14 +01:00
Joyee Cheung 17e0e3e2d6 test: skip SEA tests when SEA generation fails
In the SEA tests, if any of these steps fail:

1. Copy the executable
2. Inject the SEA blob
3. Signing the SEA

We skip the test because the error likely comes from the system or
postject and is not something the Node.js core can fix. We only leave
an exception for a basic test that test injecting empty files as
SEA to ensure the workflow is working (but we still skip if copying
fails or signing fails on Windows).

PR-URL: https://github.com/nodejs/node/pull/51887
Refs: https://github.com/nodejs/node/issues/49630
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2024-03-01 23:46:02 +01:00
Joyee Cheung c307ad7686 sea: support sea.getRawAsset()
This patch adds support for `sea.getRawAsset()` which is
similar to `sea.getAsset()` but returns the raw asset
in an array buffer without copying. Users should avoid
writing to the returned array buffer. If the injected
section is not marked as writable or not aligned,
writing to the raw asset is likely to result in a crash.

PR-URL: https://github.com/nodejs/node/pull/50960
Refs: https://github.com/nodejs/single-executable/issues/68
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2024-02-02 15:25:34 +01:00
Joyee Cheung ce8f085d26 sea: support embedding assets
With this patch:

Users can now include assets by adding a key-path dictionary
to the configuration as the `assets` field. At build time, Node.js
would read the assets from the specified paths and bundle them into
the preparation blob. In the generated executable, users can retrieve
the assets using the `sea.getAsset()` and `sea.getAssetAsBlob()` API.

```json
{
  "main": "/path/to/bundled/script.js",
  "output": "/path/to/write/the/generated/blob.blob",
  "assets": {
    "a.jpg": "/path/to/a.jpg",
    "b.txt": "/path/to/b.txt"
  }
}
```

The single-executable application can access the assets as follows:

```cjs
const { getAsset } = require('node:sea');
// Returns a copy of the data in an ArrayBuffer
const image = getAsset('a.jpg');
// Returns a string decoded from the asset as UTF8.
const text = getAsset('b.txt', 'utf8');
// Returns a Blob containing the asset.
const blob = getAssetAsBlob('a.jpg');
```

Drive-by: update the  documentation to include a section dedicated
to the injected main script and refer to it as "injected main
script" instead of "injected module" because it's a script, not
a module.

PR-URL: https://github.com/nodejs/node/pull/50960
Refs: https://github.com/nodejs/single-executable/issues/68
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2024-02-02 15:25:34 +01:00
Michaël Zasso 6b6bcee747 test: mark test-http2-large-file as flaky
Refs: https://github.com/nodejs/node/issues/47409
PR-URL: https://github.com/nodejs/node/pull/51549
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
2024-01-25 11:59:53 +00:00
Gabriel Bota a3abc42587 async_hooks,inspector: implement inspector api without async_wrap
Implementing the inspector session object as an async resource causes
unwanted context change when a breakpoint callback function is being
called. Modelling the inspector api without the AsyncWrap base class
ensures that the callback has access to the AsyncLocalStorage instance
that is active in the affected user function.

See `test-inspector-async-context-brk.js` for an illustration of the
use case.

PR-URL: https://github.com/nodejs/node/pull/51501
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2024-01-24 13:29:28 +00:00
Richard Lau 273c892638 test: fix flaky conditions for ppc64 SEA tests
In test status files, `$system` will be the OS and not the arch (which
would be `$arch`).

Add missing single-executable-application test to the list of tests
marked flaky on Linux ppc64le.

PR-URL: https://github.com/nodejs/node/pull/51422
Refs: https://github.com/nodejs/node/pull/50828
Refs: https://github.com/nodejs/node/issues/50740
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2024-01-11 12:31:14 +00:00
Michael Dawson 4f3261f101 test: skip test-watch-mode-inspect on arm
Refs: https://github.com/nodejs/node/issues/49933

- SKIP instead of mark FLAKY as tests seems to fail
  builds through left over processe

Signed-off-by: Michael Dawson <midawson@redhat.com>
PR-URL: https://github.com/nodejs/node/pull/51210
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2023-12-22 04:35:41 +00:00
Pulkit Gupta 154afbed5b watch: fix infinite loop when passing --watch=true flag
PR-URL: https://github.com/nodejs/node/pull/51160
Fixes: https://github.com/nodejs/node/issues/51159
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2023-12-16 20:39:49 +00:00
Joyee Cheung a3ee1870fd test: log more information in SEA tests
- Use spawnSyncAndExitWithoutError to log more information on error.
- Use NODE_DEBUG_NATIVE to log internals
- Skip the test when available disk space < 120MB

PR-URL: https://github.com/nodejs/node/pull/50759
Refs: https://github.com/nodejs/node/issues/50740
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2023-11-28 23:16:53 +00:00
Joyee Cheung 78633c4738 test: use ppc and ppc64 to skip SEA tests on PowerPC
It seems using ppc alone is not enough. Add ppc64 to be safe.

PR-URL: https://github.com/nodejs/node/pull/50828
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Keyhan Vakil <kvakil@sylph.kvakil.me>
2023-11-21 00:25:14 +00:00
Joyee Cheung 136742dff7 test: mark SEA tests as flaky on PowerPC
PR-URL: https://github.com/nodejs/node/pull/50750
Refs: https://github.com/nodejs/node/issues/50740
Refs: https://github.com/nodejs/reliability/issues/718
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
2023-11-17 13:41:56 -05:00
Moshe Atlow 41a3878f3d test: improve watch mode test
PR-URL: https://github.com/nodejs/node/pull/50319
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2023-10-23 19:03:25 +00:00
Antoine du Hamel 8f742bb13f test: ensure never settling promises are detected
PR-URL: https://github.com/nodejs/node/pull/50318
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-10-23 17:55:50 +00:00
Yagiz Nizipli d370ed0cd8 test: set test-watch-mode-inspect as flaky
PR-URL: https://github.com/nodejs/node/pull/50259
Refs: https://github.com/nodejs/node/issues/49933
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
2023-10-22 20:10:41 +00:00
Geoffrey Booth 02926d3c6a esm: detect ESM syntax in ambiguous JavaScript
PR-URL: https://github.com/nodejs/node/pull/50096
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
2023-10-20 15:44:56 +00:00
Luigi Pinca 0345ea5928 test: reduce the number of requests and parsers
The maximum number of parsers in the free list is set to 1000. However
the test does not need to use this maximum. Reduce it to 50.

Refs: https://github.com/nodejs/node/pull/50228#issuecomment-1768293624
PR-URL: https://github.com/nodejs/node/pull/50240
Fixes: https://github.com/nodejs/node/issues/49564
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
2023-10-20 12:56:44 +00:00
Yagiz Nizipli dab9505829 test: set sea snapshot tests as flaky
PR-URL: https://github.com/nodejs/node/pull/50223
Refs: https://github.com/nodejs/node/issues/49630
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2023-10-18 14:05:39 +00:00
Joyee Cheung 4d0aeed4a6 test: deflake test-perf-hooks.js
Previously when checking the initial timing we did a lot of checks
after accessing and copying timing.duration and before we check
that timing.duration is roughly the same as performance.now(),
which can lead to flakes if the overhead of the checking is
big enough. Update the test to check timing.duration against
performance.now() as soon as possible when it's copied instead
of computed.
:#

PR-URL: https://github.com/nodejs/node/pull/49892
Refs: https://github.com/nodejs/reliability/issues/676
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Richard Lau <rlau@redhat.com>
2023-09-29 18:14:01 +02:00
Luigi Pinca 480ab8c3a4 Revert "test: mark test-http-regr-gh-2928 as flaky"
This reverts commit 48fcb205e4.

Refs: https://github.com/nodejs/node/commit/18e00a577d74
PR-URL: https://github.com/nodejs/node/pull/49708
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
2023-09-20 18:31:47 +00:00
Livia Medeiros cdad3d8fe5 test: use fs.constants for fs.access constants
PR-URL: https://github.com/nodejs/node/pull/49685
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-09-20 07:14:37 +00:00
Luigi Pinca 18e00a577d test: deflake test-http-regr-gh-2928
Hard code the value of the host parameter to `common.localhostIPv4` in
`server.listen()` and `net.connect()`. This

1. ensures that the client `socket._handle` is not reinitialized during
   connection due to the family autodetection algorithm, preventing
   `parser.consume()` from being called with an invalid `socket._handle`
   parameter.
2. works around an issue in the FreeBSD 12 machine where the stress test
   is run where some sockets get stuck after connection.

PR-URL: https://github.com/nodejs/node/pull/49574
Closes: https://github.com/nodejs/node/pull/49565
Fixes: https://github.com/nodejs/node/issues/49564
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2023-09-18 20:16:24 +02:00
Joyee Cheung b45e196bec test: show more info on failure in test-cli-syntax-require.js
Use spawnSyncAndExit() to show more info when the tes fails.

PR-URL: https://github.com/nodejs/node/pull/49561
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Ruy Adorno <ruyadorno@google.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Nitzan Uziely <linkgoron@gmail.com>
2023-09-12 17:02:51 +00:00
William Marlow d8b378cb3f fs: fix readdir and opendir recursive with unknown file types
If the libuv operations invoked by `readdir`/`opendir` return
`uv_dirent_t` values where the `type` is `UV_DIRENT_UNKNOWN` then a
further `lstat` is issued to fully construct the `Dirent` values. In the
recursive versions of these functions, the `path` parameter was
incorrectly assumed to be the path to the entry when it should be the
path to the directory containing the entry.

Fixes #49499.

PR-URL: https://github.com/nodejs/node/pull/49603
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-09-11 19:08:08 +00:00
Joyee Cheung 48fcb205e4 test: mark test-http-regr-gh-2928 as flaky
It has been flaky for more than a year. Mark it as flaky to avoid
blocking the CI.

PR-URL: https://github.com/nodejs/node/pull/49565
Refs: https://github.com/nodejs/reliability/issues/658
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Ruy Adorno <ruyadorno@google.com>
2023-09-11 16:39:49 +00:00
Joyee Cheung 65d396b0a0 test: use spawnSyncAndExitWithoutError in sea tests
To display more information when the command fails.

PR-URL: https://github.com/nodejs/node/pull/49543
Refs: https://github.com/nodejs/reliability/issues/658
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2023-09-11 16:39:37 +00:00
Jithil P Ponnan 54021850f9 process: add custom dir support for heapsnapshot-signal
PR-URL: https://github.com/nodejs/node/pull/47854
Refs: https://github.com/nodejs/node/issues/47842
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Erick Wendel <erick.workspace@gmail.com>
2023-09-05 15:13:01 -07:00
Joyee Cheung 7f001c2299 test: make test-worker-prof more robust
Use a JS workload instead of repeating FS operations and use a
timer to make it less flaky on machines with little resources.

PR-URL: https://github.com/nodejs/node/pull/49274
Refs: https://github.com/nodejs/node/issues/26401
Refs: https://github.com/nodejs/reliability/issues/640
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-09-04 21:53:59 +00:00
Joyee Cheung 5c9daf4583 sea: generate code cache with deserialized isolate
V8 now requires code cache to be compiled from an isolate with the
same RO space layout as the one that's going to deserialize the
cache, so for a binary built with snapshot, we need to compile
the code cache using a deserialized isolate.

Drive-by: ignore "useCodeCache" when "useSnapshot" is true because
the compilation would've been done during build time anyway in
that case, and print a warning for it.

PR-URL: https://github.com/nodejs/node/pull/49226
Refs: https://github.com/nodejs/node-v8/issues/252
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2023-08-22 16:56:04 +00:00
Livia Medeiros 052434a0c1 test: use tmpdir.resolve()
PR-URL: https://github.com/nodejs/node/pull/49136
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-21 16:41:53 +00:00
Joyee Cheung ecde9d9640 test: make test-perf-hooks more robust and work with workers
Previously the test makes several assumptions about the absolute
values of the nodeTiming fields, which can make the test flaky
on slow machines. This patch rewrites the test to check the
relative values instead. It also updates the test to make it
work with workers instead of directly skipping in workers.

PR-URL: https://github.com/nodejs/node/pull/49197
Refs: https://github.com/nodejs/reliability/issues/638
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-08-18 11:49:56 +00:00
Ethan Arrowood 27cadf5e93 fs: fix readdir recursive sync & callback
Refs: https://github.com/nodejs/node/issues/48640
PR-URL: https://github.com/nodejs/node/pull/48698
Fixes: https://github.com/nodejs/node/issues/48858
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2023-08-12 20:55:36 +00:00
Chemi Atlow 35f2b42d06 test: stabilize the inspector-open-dispose test
Ref: https://ci.nodejs.org/job/node-test-commit-osx-arm/nodes\=osx11/12543/console, https://github.com/nodejs/reliability/issues/631
PR-URL: https://github.com/nodejs/node/pull/49000
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-11 13:05:01 +00:00
Antoine du Hamel a973446b91 test: use spawn and spawnPromisified instead of exec
PR-URL: https://github.com/nodejs/node/pull/48991
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
2023-08-05 07:29:53 +00:00
rogertyang 556b1ca900 tls: fix bugs of double TLS
Fixs two issues in `TLSWrap`, one of them is reported in
https://github.com/nodejs/node/issues/30896.

1. `TLSWrap` has exactly one `StreamListener`, however,
that `StreamListener` can be replaced. We have not been
rigorous enough here: if an active write has not been
finished before the transition, the finish callback of it
will be wrongly fired the successor `StreamListener`.

2. A `TLSWrap` does not allow more than one active write,
as checked in the assertion about current_write in
`TLSWrap::DoWrite()`.

However, when users make use of an existing `tls.TLSSocket`
to establish double TLS, by
either
  tls.connect({socket: tlssock})
or
  tlsServer.emit('connection', tlssock)
we have both of the user provided `tls.TLSSocket`, tlssock and
a brand new created `TLSWrap` writing to the `TLSWrap` bound to
tlssock, which easily violates the constranint because two writers
have no idea of each other.

The design of the fix is:
when a `TLSWrap` is created on top of a user provided socket,
do not send any data to the socket until all existing writes
of the socket are done and ensure registered callbacks of
those writes can be fired.

PR-URL: https://github.com/nodejs/node/pull/48969
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
2023-08-04 10:14:18 -04:00
Antoine du Hamel 384f5d44a8 test: fix some assumptions in tests
Some tests are assuming they will be run from a directory that do not
contain any quote or special character in its path. That assumption is
not necessary, using `JSON.stringify` or `pathToFileURL` ensures the
test can be run whatever the path looks like.

PR-URL: https://github.com/nodejs/node/pull/48958
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2023-07-31 13:09:07 +00:00
Darshan Sen 6cd678965f sea: add support for V8 bytecode-only caching
Refs: https://github.com/nodejs/single-executable/issues/73
Signed-off-by: Darshan Sen <raisinten@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/48191
Fixes: https://github.com/nodejs/single-executable/issues/73
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
2023-07-26 10:10:35 +00:00
Joyee Cheung ac34e7561a src: support snapshot in single executable applications
This patch adds snapshot support to single executable applications.
To build a snapshot from the main script when preparing the
blob that will be injected into the single executable application,
add `"useSnapshot": true` to the configuration passed to
`--experimental-sea-config`. For example:

```
{
    "main": "snapshot.js",
    "output": "sea-prep.blob",
    "useSnapshot": true
}
```

The main script used to build the snapshot must invoke
`v8.startupSnapshot.setDeserializeMainFunction()` to configure the
entry point. The generated startup snapshot would be part of the
preparation blob and get injected into the final executable.

When the single executable application is launched, instead of running
the `main` script from scratch, Node.js would instead deserialize the
snapshot to get to the state initialized during build-time directly.

PR-URL: https://github.com/nodejs/node/pull/46824
Refs: https://github.com/nodejs/single-executable/discussions/57
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2023-07-20 22:57:00 +00:00
Antoine du Hamel 3ce51ae9c0 module: harmonize error code between ESM and CJS
PR-URL: https://github.com/nodejs/node/pull/48606
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Jan Krems <jan.krems@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2023-07-04 09:52:56 +00:00
Moshe Atlow 9dc2d1b964 test: fix flaky test-watch-mode
PR-URL: https://github.com/nodejs/node/pull/48147
Fixes: https://github.com/nodejs/node/issues/44898
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-06-08 11:35:14 +00:00