-
Notifications
You must be signed in to change notification settings - Fork 29.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test-snapshot-reproducible is failing in the main branch #53579
Comments
Started three builds to see which commit introduced the regression or whether it was caused by infra: https://ci.nodejs.org/job/node-test-commit-linux-containered/44134/ |
Reason for revert: broke test-snapshot-reproducible.js in dynamically linked builds in the CI. This reverts commit 4c730ae. PR-URL: #53582 Refs: #53579 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: Jiawen Geng <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Stewart X Addison <[email protected]>
I haven't been able to reproduce this locally yet, but from the logs:
I suspect the unreproducibility comes from the hash of the flags - at least, it seems to be in the header of the main context snapshot. |
I haven't been able to reproduce this in a "normal" build (Linux) but can with 4c730ae when building with |
I am still unable to reproduce it with |
Ah, I could reproduce it now, it needs a separately installed shared openssl. |
I can reproduce this on a local docker ubuntu container: $ uname -a
Linux e3f5b61fd0a2 6.6.31-linuxkit #1 SMP Thu May 23 08:36:57 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
$ ./configure --shared-openssl --shared-openssl-libpath=/usr/lib/aarch64-linux-gnu/ --shared-openssl-includes=/usr/include
$ make
$ ./out/Release/node test/parallel/test-snapshot-reproducible.js
0x0: Write magic 143da19
0x4: Write metadata
0x39: Write snapshot blob
0x185085: Write IsolateDataSerializeInfo
0x186538: Write EnvSerializeInfo
0x1873d1: Write CodeCacheInfo
0x0: Write magic 143da19
0x4: Write metadata
0x39: Write snapshot blob
0x185085: Write IsolateDataSerializeInfo
0x186538: Write EnvSerializeInfo
0x1873d1: Write CodeCacheInfo
node:assert:126
throw new AssertionError(obj);
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
+ [
+ {
+ offset: '0x40',
+ slice1: '0001000000f63cf2004cb3bf2331322e',
+ slice2: '00010000004a3dfd284cb3bf2331322e'
+ },
+ {
+ offset: '0x111680',
+ slice1: '805d44660000000000000000707179fc',
+ slice2: '805d4466000000000000000000b9fbf6'
+ }
+ ]
- []
at Object.<anonymous> (/workspace/test/parallel/test-snapshot-reproducible.js:69:8)
at Module._compile (node:internal/modules/cjs/loader:1467:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1551:10)
at Module.load (node:internal/modules/cjs/loader:1282:32)
at Module._load (node:internal/modules/cjs/loader:1098:12)
at TracingChannel.traceSync (node:diagnostics_channel:315:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:215:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:158:5)
at node:internal/main/run_main_module:30:49 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: [
{
offset: '0x40',
slice1: '0001000000f63cf2004cb3bf2331322e',
slice2: '00010000004a3dfd284cb3bf2331322e'
},
{
offset: '0x111680',
slice1: '805d44660000000000000000707179fc',
slice2: '805d4466000000000000000000b9fbf6'
}
],
expected: [],
operator: 'deepStrictEqual'
}
Node.js v23.0.0-pre |
Locally this patch fixes it for me (it is rather curious why this only shows up in dynamically linked builds, though..): https://chromium-review.googlesource.com/c/v8/v8/+/5662576 |
Without initializing the max byte length field, any empty array buffer captured in the snapshot can make the snapshot unreproducible. Refs: nodejs/node#53579 Change-Id: I2489ab2e57ecbb405ec431a87d0acc92822b777c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5662576 Reviewed-by: Marja Hölttä <[email protected]> Commit-Queue: Marja Hölttä <[email protected]> Cr-Commit-Position: refs/heads/main@{#94754}
Original commit message: [arraybuffers] initialize max byte length of empty array buffers Without initializing the max byte length field, any empty array buffer captured in the snapshot can make the snapshot unreproducible. Refs: nodejs#53579 Change-Id: I2489ab2e57ecbb405ec431a87d0acc92822b777c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5662576 Reviewed-by: Marja Hölttä <[email protected]> Commit-Queue: Marja Hölttä <[email protected]> Cr-Commit-Position: refs/heads/main@{#94754} Refs: v8/v8@e061cf9
Original commit message: [rab/gsab] Remove --harmony-rab-gsab (has been on by default for a while) Bug: v8:11111 Change-Id: Ie74e7737f3e2e8730820cf00f1cbc7ae02b515af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5516580 Commit-Queue: Marja Hölttä <[email protected]> Reviewed-by: Camillo Bruni <[email protected]> Reviewed-by: Shu-yu Guo <[email protected]> Reviewed-by: Nico Hartmann <[email protected]> Cr-Commit-Position: refs/heads/main@{#93848} Refs: v8/v8@9ebca66 PR-URL: #53522 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> PR-URL: #53755 Fixes: #53579 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Original commit message: [arraybuffers] initialize max byte length of empty array buffers Without initializing the max byte length field, any empty array buffer captured in the snapshot can make the snapshot unreproducible. Refs: #53579 Change-Id: I2489ab2e57ecbb405ec431a87d0acc92822b777c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5662576 Reviewed-by: Marja Hölttä <[email protected]> Commit-Queue: Marja Hölttä <[email protected]> Cr-Commit-Position: refs/heads/main@{#94754} Refs: v8/v8@e061cf9 PR-URL: #53755 Fixes: #53579 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Original commit message: [rab/gsab] Remove --harmony-rab-gsab (has been on by default for a while) Bug: v8:11111 Change-Id: Ie74e7737f3e2e8730820cf00f1cbc7ae02b515af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5516580 Commit-Queue: Marja Hölttä <[email protected]> Reviewed-by: Camillo Bruni <[email protected]> Reviewed-by: Shu-yu Guo <[email protected]> Reviewed-by: Nico Hartmann <[email protected]> Cr-Commit-Position: refs/heads/main@{#93848} Refs: v8/v8@9ebca66 PR-URL: #53522 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> PR-URL: #53755 Fixes: #53579 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Original commit message: [arraybuffers] initialize max byte length of empty array buffers Without initializing the max byte length field, any empty array buffer captured in the snapshot can make the snapshot unreproducible. Refs: #53579 Change-Id: I2489ab2e57ecbb405ec431a87d0acc92822b777c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5662576 Reviewed-by: Marja Hölttä <[email protected]> Commit-Queue: Marja Hölttä <[email protected]> Cr-Commit-Position: refs/heads/main@{#94754} Refs: v8/v8@e061cf9 PR-URL: #53755 Fixes: #53579 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Original commit message: [rab/gsab] Remove --harmony-rab-gsab (has been on by default for a while) Bug: v8:11111 Change-Id: Ie74e7737f3e2e8730820cf00f1cbc7ae02b515af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5516580 Commit-Queue: Marja Hölttä <[email protected]> Reviewed-by: Camillo Bruni <[email protected]> Reviewed-by: Shu-yu Guo <[email protected]> Reviewed-by: Nico Hartmann <[email protected]> Cr-Commit-Position: refs/heads/main@{#93848} Refs: v8/v8@9ebca66 PR-URL: #53522 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> PR-URL: #53755 Fixes: #53579 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Original commit message: [arraybuffers] initialize max byte length of empty array buffers Without initializing the max byte length field, any empty array buffer captured in the snapshot can make the snapshot unreproducible. Refs: nodejs#53579 Change-Id: I2489ab2e57ecbb405ec431a87d0acc92822b777c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5662576 Reviewed-by: Marja Hölttä <[email protected]> Commit-Queue: Marja Hölttä <[email protected]> Cr-Commit-Position: refs/heads/main@{#94754} Refs: v8/v8@e061cf9 PR-URL: nodejs#53755 Fixes: nodejs#53579 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Original commit message: [arraybuffers] initialize max byte length of empty array buffers Without initializing the max byte length field, any empty array buffer captured in the snapshot can make the snapshot unreproducible. Refs: nodejs#53579 Change-Id: I2489ab2e57ecbb405ec431a87d0acc92822b777c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5662576 Reviewed-by: Marja Hölttä <[email protected]> Commit-Queue: Marja Hölttä <[email protected]> Cr-Commit-Position: refs/heads/main@{#94754} Refs: v8/v8@e061cf9 PR-URL: nodejs#53755 Fixes: nodejs#53579 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Original commit message: [arraybuffers] initialize max byte length of empty array buffers Without initializing the max byte length field, any empty array buffer captured in the snapshot can make the snapshot unreproducible. Refs: nodejs#53579 Change-Id: I2489ab2e57ecbb405ec431a87d0acc92822b777c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5662576 Reviewed-by: Marja Hölttä <[email protected]> Commit-Queue: Marja Hölttä <[email protected]> Cr-Commit-Position: refs/heads/main@{#94754} Refs: v8/v8@e061cf9 PR-URL: nodejs#53755 Fixes: nodejs#53579 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Original commit message: [rab/gsab] Remove --harmony-rab-gsab (has been on by default for a while) Bug: v8:11111 Change-Id: Ie74e7737f3e2e8730820cf00f1cbc7ae02b515af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5516580 Commit-Queue: Marja Hölttä <[email protected]> Reviewed-by: Camillo Bruni <[email protected]> Reviewed-by: Shu-yu Guo <[email protected]> Reviewed-by: Nico Hartmann <[email protected]> Cr-Commit-Position: refs/heads/main@{#93848} Refs: v8/v8@9ebca66 PR-URL: nodejs#53522 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> PR-URL: nodejs#53755 Fixes: nodejs#53579 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
The snapshot reproducibility test has been failing in dynamically linked builds since yesterday. From CI history it was still green at cd8e61f (https://ci.nodejs.org/job/node-test-commit-linux-containered/44116/), but started failing no later than 4c730ae (https://ci.nodejs.org/job/node-test-commit-linux-containered/44117/), that means either one of the two commits in cd8e61f...4c730ae caused the regression, or some infra update happened yesterday caused the regression.
The text was updated successfully, but these errors were encountered: