| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
Review requested:
|
Sorry, something went wrong.
Commit Queue failed- Loading data for nodejs/node/pull/56010 ✔ Done loading data for nodejs/node/pull/56010 ----------------------------------- PR info ------------------------------------ Title sqlite: deps include `sqlite3ext.h` (#56010) Author Alex Yang <himself65@outlook.com> (@himself65) Branch himself65:himself65/20241126/include_ext -> nodejs:main Labels tools, author ready, needs-ci, dependencies, sqlite Commits 1 - sqlite: deps include `sqlite3ext.h` Committers 1 - Alex Yang <himself65@outlook.com> PR-URL: https://github.com/nodejs/node/pull/56010 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> ------------------------------ Generated metadata ------------------------------ PR-URL: https://github.com/nodejs/node/pull/56010 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> -------------------------------------------------------------------------------- ℹ This PR was created on Wed, 27 Nov 2024 00:30:11 GMT ✔ Approvals: 1 ✔ - Colin Ihrig (@cjihrig): https://github.com/nodejs/node/pull/56010#pullrequestreview-2465240184 ✘ This PR needs to wait 119 more hours to land (or 0 hours if there is one more approval) ✔ Last GitHub CI successful ✘ No Jenkins CI runs detected -------------------------------------------------------------------------------- ✔ Aborted `git node land` session in /home/runner/work/node/node/.ncuhttps://github.com/nodejs/node/actions/runs/12077031263 |
Sorry, something went wrong.
Sorry, something went wrong.
PR-URL: #56010 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Preserve the original behavior from master where yarn cache is disabled for Node 22 due to V8 bug in 22.21.0 (nodejs/node#56010). Before: cache: yarn (always enabled) After: cache: ${{ steps.translate-matrix.outputs.node-version != '22' && 'yarn' || '' }} This ensures Node 22 runs without cache while Node 20 uses cache as intended. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Preserve the original behavior from master where yarn cache is disabled for Node 22 due to V8 bug in 22.21.0 (nodejs/node#56010). Before: cache: yarn (always enabled) After: cache: ${{ steps.translate-matrix.outputs.node-version != '22' && 'yarn' || '' }} This ensures Node 22 runs without cache while Node 20 uses cache as intended. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
The Pro integration tests were failing with a Node.js V8 engine crash (unreachable code fatal error) when trying to get yarn cache folder. This is a known bug in Node 22.21.0 (nodejs/node#56010). The main integration-tests.yml already had this workaround, but pro-integration-tests.yml was missing it. This change disables yarn caching for Node 22 in all three jobs in the Pro workflow: - build-dummy-app-webpack-test-bundles - rspec-dummy-app-node-renderer - dummy-app-node-renderer-e2e-tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Extended the Node 22 V8 crash workaround to all workflows that were missing it: - lint-js-and-ruby.yml - pro-lint.yml - pro-test-package-and-gem.yml These workflows were failing with the same V8 engine crash as pro-integration-tests.yml (fixed in previous commit). The issue is a known bug in Node 22.21.0 when accessing yarn cache folders (nodejs/node#56010). All Node 22 workflows now have caching disabled to prevent the "unreachable code" fatal error during setup. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
The Pro integration tests were failing with a Node.js V8 engine crash (unreachable code fatal error) when trying to get yarn cache folder. This is a known bug in Node 22.21.0 (nodejs/node#56010). The main integration-tests.yml already had this workaround, but pro-integration-tests.yml was missing it. This change disables yarn caching for Node 22 in all three jobs in the Pro workflow: - build-dummy-app-webpack-test-bundles - rspec-dummy-app-node-renderer - dummy-app-node-renderer-e2e-tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Extended the Node 22 V8 crash workaround to all workflows that were missing it: - lint-js-and-ruby.yml - pro-lint.yml - pro-test-package-and-gem.yml These workflows were failing with the same V8 engine crash as pro-integration-tests.yml (fixed in previous commit). The issue is a known bug in Node 22.21.0 when accessing yarn cache folders (nodejs/node#56010). All Node 22 workflows now have caching disabled to prevent the "unreachable code" fatal error during setup. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
The Pro integration tests were failing with a Node.js V8 engine crash (unreachable code fatal error) when trying to get yarn cache folder. This is a known bug in Node 22.21.0 (nodejs/node#56010). The main integration-tests.yml already had this workaround, but pro-integration-tests.yml was missing it. This change disables yarn caching for Node 22 in all three jobs in the Pro workflow: - build-dummy-app-webpack-test-bundles - rspec-dummy-app-node-renderer - dummy-app-node-renderer-e2e-tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Extended the Node 22 V8 crash workaround to all workflows that were missing it: - lint-js-and-ruby.yml - pro-lint.yml - pro-test-package-and-gem.yml These workflows were failing with the same V8 engine crash as pro-integration-tests.yml (fixed in previous commit). The issue is a known bug in Node 22.21.0 when accessing yarn cache folders (nodejs/node#56010). All Node 22 workflows now have caching disabled to prevent the "unreachable code" fatal error during setup. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This change introduces a custom composite GitHub action that wraps `actions/setup-node@v4` with automatic retry logic to handle transient V8 bytecode deserialization crashes that occur during `yarn cache dir` execution. The V8 crash manifests as: "Fatal error in , line 0 Check failed: ReadSingleBytecodeData(...) == 1" Key improvements: - New composite action `.github/actions/setup-node-with-retry` that: - Pre-validates yarn cache dir works before running setup-node - Automatically retries up to 3 times on V8 crashes - Fails fast on non-V8 errors without retrying - Provides clear warnings in CI logs when retries occur - Updated all CI workflows to use the new action: - examples.yml - Re-enabled yarn caching (was disabled due to this issue) - integration-tests.yml - Re-enabled yarn caching for Node 22 - lint-js-and-ruby.yml - package-js-tests.yml - playwright.yml - pro-integration-tests.yml - pro-lint.yml - pro-test-package-and-gem.yml This resolves transient CI failures and allows us to re-enable yarn caching across all workflows, improving CI performance. Related issues: - nodejs/node#56010 - actions/setup-node#1028 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
## Summary This PR introduces a custom composite GitHub action that pre-validates yarn cache functionality before running Node.js setup, catching transient V8 bytecode deserialization crashes early in the CI process. ## Problem CI jobs occasionally fail with this V8 crash during the `yarn cache dir` command execution in `actions/setup-node@v4`: ``` Fatal error in , line 0 Check failed: ReadSingleBytecodeData(...) == 1 ``` This is a known Node.js/V8 bug that occurs sporadically: - nodejs/node#56010 - actions/setup-node#1028 Previous workarounds were to disable yarn caching entirely, which significantly slowed down CI. ## Solution Created a new composite action `.github/actions/setup-node-with-retry` that: - Pre-validates `yarn cache dir` works before running `setup-node` - Automatically retries up to 3 times when V8 crashes are detected - Handles timeout errors explicitly (exit codes 124, 143) - Fails fast on non-V8 errors without retrying - Provides clear warning annotations in CI logs when retries occur - Waits 5 seconds between retry attempts ### Important Limitation The pre-validation approach doesn't prevent the V8 crash from potentially occurring again when `setup-node` runs its own `yarn cache dir`. However, in practice, if the validation succeeds, setup-node typically succeeds as well. This approach: - ✅ Catches the crash early before other setup steps run - ✅ Provides retry logic that reduces transient failures significantly - ✅ Allows re-enabling yarn caching for better CI performance - ⚠️ Doesn't retry the actual setup-node action itself (GitHub Actions limitation) A more complete solution would require rewriting this as a JavaScript action that directly wraps the `@actions/toolkit` cache operations, but this simpler approach provides substantial practical benefit. ## Changes Updated all CI workflows to use the new action: - ✅ `examples.yml` - **Re-enabled yarn caching** (was disabled due to this issue) - ✅ `integration-tests.yml` - **Re-enabled yarn caching for Node 22** - ✅ `lint-js-and-ruby.yml` - ✅ `package-js-tests.yml` - ✅ `playwright.yml` - ✅ `pro-integration-tests.yml` - ✅ `pro-lint.yml` - ✅ `pro-test-package-and-gem.yml` ## Benefits 1. **Improved reliability**: Significantly reduces CI failures from transient V8 crashes 2. **Better performance**: Yarn caching re-enabled across all workflows 3. **Clear diagnostics**: Warning annotations show when retries occur 4. **Backward compatible**: Identical API to `actions/setup-node@v4` 5. **Maintainable**: Centralized retry logic that can be improved independently ## Test Plan - [x] Verified all workflows updated correctly - [x] RuboCop passes - [x] Pre-commit hooks pass - [x] Removed unreachable code based on code review feedback - [x] Added timeout detection and better error handling - [ ] Monitor CI runs to confirm retry logic works when V8 crashes occur 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude <noreply@anthropic.com>
The Pro integration tests were failing with a Node.js V8 engine crash (unreachable code fatal error) when trying to get yarn cache folder. This is a known bug in Node 22.21.0 (nodejs/node#56010). The main integration-tests.yml already had this workaround, but pro-integration-tests.yml was missing it. This change disables yarn caching for Node 22 in all three jobs in the Pro workflow: - build-dummy-app-webpack-test-bundles - rspec-dummy-app-node-renderer - dummy-app-node-renderer-e2e-tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Extended the Node 22 V8 crash workaround to all workflows that were missing it: - lint-js-and-ruby.yml - pro-lint.yml - pro-test-package-and-gem.yml These workflows were failing with the same V8 engine crash as pro-integration-tests.yml (fixed in previous commit). The issue is a known bug in Node 22.21.0 when accessing yarn cache folders (nodejs/node#56010). All Node 22 workflows now have caching disabled to prevent the "unreachable code" fatal error during setup. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
The Pro integration tests were failing with a Node.js V8 engine crash (unreachable code fatal error) when trying to get yarn cache folder. This is a known bug in Node 22.21.0 (nodejs/node#56010). The main integration-tests.yml already had this workaround, but pro-integration-tests.yml was missing it. This change disables yarn caching for Node 22 in all three jobs in the Pro workflow: - build-dummy-app-webpack-test-bundles - rspec-dummy-app-node-renderer - dummy-app-node-renderer-e2e-tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Extended the Node 22 V8 crash workaround to all workflows that were missing it: - lint-js-and-ruby.yml - pro-lint.yml - pro-test-package-and-gem.yml These workflows were failing with the same V8 engine crash as pro-integration-tests.yml (fixed in previous commit). The issue is a known bug in Node 22.21.0 when accessing yarn cache folders (nodejs/node#56010). All Node 22 workflows now have caching disabled to prevent the "unreachable code" fatal error during setup. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Pin Node.js version to 22.11.0 (LTS) in CI workflows to avoid V8 bug that causes crashes during yalc publish and other operations. Reference: nodejs/node#56010 Also standardize Playwright workflow to use 'yarn run' instead of bare 'yarn' commands for consistency with other workflows. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
## Summary
Pins Node.js version to 22.11.0 (LTS) in CI workflows to avoid a V8 bug
that causes crashes during Will not publish package with `private: true`
use --private flag to force publishing. and other operations.
## Changes
- Pin to in lint-js-and-ruby workflow
- Standardize Playwright workflow to use yarn run v1.22.22
info Commands available from binary scripts: acorn, attw,
baseline-browser-mapping, browserslist, create-jest, cssesc, ejs,
escodegen, esgenerate, eslint, eslint-config-prettier, esparse,
esvalidate, github-codeowners, he, highlight, honeybadger-checkins-sync,
import-local-fixture, jake, jest, jiti, js-yaml, jsesc, json5, knip,
knip-bun, loose-envify, lz-string, marked, mime, mkdirp, nanoid,
nodetouch, nps, parser, pino, pino-pretty, prettier, ps-tree, publint,
regjsparser, resolve, semver, stylelint, ts-jest, tsc, tsserver,
update-browserslist-db, uuid, which
info Project commands
- build
yarn workspace react-on-rails run build && yarn workspace
react-on-rails-pro run build
- build-watch
yarn workspaces run build-watch
- check
yarn run lint && yarn workspaces run check
- clean
yarn workspaces run clean
- lint
nps eslint
- lint:scss
stylelint "spec/dummy/app/assets/stylesheets/**/*.scss"
"spec/dummy/client/**/*.scss"
- postinstall
test -f .lefthook.yml && test -d .git && command -v bundle >/dev/null
2>&1 && bundle exec lefthook install || true
- publish
yarn workspaces run publish
- start
nps
- test
yarn workspaces run test
- type-check
yarn workspaces run type-check
- yalc
yarn workspaces run yalc
- yalc:publish
yarn workspaces run yalc:publish
Done in 0.03s. instead of bare yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
$ test -f .lefthook.yml && test -d .git && command -v bundle >/dev/null
2>&1 && bundle exec lefthook install || true
Done in 2.45s. commands for consistency
## References
- Node.js V8 bug: nodejs/node#56010
## Testing
- ✅ No code changes, only CI configuration
- ✅ Workflows will use pinned Node.js version on next run
## Context
This is part of preparing for the monorepo node-renderer package. This
small fix can merge independently.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Chores**
* Updated Node.js version pinning in build workflows to use a specific
LTS patch version, improving build stability and consistency.
* Standardized script invocation syntax in test workflows to align with
best practices.
<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Co-authored-by: Claude <noreply@anthropic.com>
The Pro integration tests were failing with a Node.js V8 engine crash (unreachable code fatal error) when trying to get yarn cache folder. This is a known bug in Node 22.21.0 (nodejs/node#56010). The main integration-tests.yml already had this workaround, but pro-integration-tests.yml was missing it. This change disables yarn caching for Node 22 in all three jobs in the Pro workflow: - build-dummy-app-webpack-test-bundles - rspec-dummy-app-node-renderer - dummy-app-node-renderer-e2e-tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Extended the Node 22 V8 crash workaround to all workflows that were missing it: - lint-js-and-ruby.yml - pro-lint.yml - pro-test-package-and-gem.yml These workflows were failing with the same V8 engine crash as pro-integration-tests.yml (fixed in previous commit). The issue is a known bug in Node 22.21.0 when accessing yarn cache folders (nodejs/node#56010). All Node 22 workflows now have caching disabled to prevent the "unreachable code" fatal error during setup. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
The Pro integration tests were failing with a Node.js V8 engine crash (unreachable code fatal error) when trying to get yarn cache folder. This is a known bug in Node 22.21.0 (nodejs/node#56010). The main integration-tests.yml already had this workaround, but pro-integration-tests.yml was missing it. This change disables yarn caching for Node 22 in all three jobs in the Pro workflow: - build-dummy-app-webpack-test-bundles - rspec-dummy-app-node-renderer - dummy-app-node-renderer-e2e-tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Extended the Node 22 V8 crash workaround to all workflows that were missing it: - lint-js-and-ruby.yml - pro-lint.yml - pro-test-package-and-gem.yml These workflows were failing with the same V8 engine crash as pro-integration-tests.yml (fixed in previous commit). The issue is a known bug in Node 22.21.0 when accessing yarn cache folders (nodejs/node#56010). All Node 22 workflows now have caching disabled to prevent the "unreachable code" fatal error during setup. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
| Back | FazBrowse Home | New Git URL |
This is a pre-requirement of #53900, I need this header file to build extension from source code