Skip to content
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

[rfc] V8 debug build CI? #55326

Open
bnoordhuis opened this issue Oct 8, 2024 · 5 comments
Open

[rfc] V8 debug build CI? #55326

bnoordhuis opened this issue Oct 8, 2024 · 5 comments
Labels
discuss Issues opened for discussions and feedbacks. v8 engine Issues and PRs related to the V8 dependency.

Comments

@bnoordhuis
Copy link
Member

bnoordhuis commented Oct 8, 2024

Correct me if I'm wrong but I believe there's currently no CI job that builds V8 with all debug checks enabled?

I'm doing some local light testing in that mode and so many bugs fall out, it's not even funny (ex. #55325.) Testing that regularly would be a Very Good Thing indeed.

On a very related subject: can I suggest mirroring V8's v8_enable_debugging_features=true feature set? Right now, the configure flags one needs to use to get a build that's similar to an upstream debug build is... the words "haphazard" and "scattered" come to mind.

I know naming is hard but... ./configure --v8-non-optimized-debug? For real?!

cc @targos

@bnoordhuis bnoordhuis added discuss Issues opened for discussions and feedbacks. v8 engine Issues and PRs related to the V8 dependency. labels Oct 8, 2024
@targos
Copy link
Member

targos commented Oct 9, 2024

We do have a debug CI job that runs on every pull request: https://ci.nodejs.org/job/node-test-commit-arm-debug/

I don't know if ./configure --debug is "optimized" by design. Maybe it's acceptable to change the V8 flags it sets?

@targos
Copy link
Member

targos commented Oct 9, 2024

@nodejs/build

@joyeecheung
Copy link
Member

If ./configure --debug doesn't already imply v8_enable_debugging_features then IMO we should. Also the last time I checked --debug doesn't seem to make it step-debuggable on Linux, so I always ended up adding CXXFLAGS=-g, so it's probably time for --debug to get cleaned up/fixed a bit.

@joyeecheung
Copy link
Member

joyeecheung commented Oct 9, 2024

I don't know if ./configure --debug is "optimized" by design. Maybe it's acceptable to change the V8 flags it sets?

My understanding is that it's similar to the is_debug setting you use for V8 GN builds (and it implies v8_enable_debugging_features in the upstream). v8_optimized_debug defaults to true in the upstream, so that's probably what --debug is also for. v8_optimized_debug = false on the other hand would make the build very slow (because it turns on a lot of slow checks) and thus is more like something you want to specifically opt into, see the PR that added --v8-non-optimized-debug #23704 - we could consider adding a daily build that uses ci.nodejs.org/job/node-test-commit-custom-suites to run the tests with a build that uses --v8-non-optimized-debug, but I would recommend against turning it on for the debug build CI that runs for every PR because it's very slow. Fixing --debug to turn on v8_enable_debugging_features in the debug CI for PRs sounds fine though.

@richardlau
Copy link
Member

we could consider adding a daily build that uses ci.nodejs.org/job/node-test-commit-custom-suites to run the tests with a build that uses --v8-non-optimized-debug, but I would recommend against turning it on for the debug build CI that runs for every PR because it's very slow.

Part of the reason that the debug build CI we do have runs on arm64 is because those are the biggest (in terms of number of CPUs/memory) machines that we have.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss Issues opened for discussions and feedbacks. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

No branches or pull requests

4 participants