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

ETW stack walking cannot be enabled from NODE_OPTIONS #46202

Closed
jdapena opened this issue Jan 13, 2023 · 0 comments · Fixed by #46203
Closed

ETW stack walking cannot be enabled from NODE_OPTIONS #46202

jdapena opened this issue Jan 13, 2023 · 0 comments · Fixed by #46203

Comments

@jdapena
Copy link
Contributor

jdapena commented Jan 13, 2023

Version

19.4.0

Platform

Windows11 (Microsoft Windows NT 10.0.22621.0 x64)

Subsystem

No response

What steps will reproduce the bug?

Add to NODE_OPTIONS --enable-etw-stack-walking.

I.e. in Git Bash: export NODE_OPTIONS="--enable-etw-stack-walking"

Then run Node:
node

How often does it reproduce? Is there a required condition?

Always

What is the expected behavior?

Node launches, and JIT code from scripts in Node generate symbols to provide stack walking in Windows Performance Recorder/Analyzer.

What do you see instead?

Node fails immediately:

C:/Program Files/nodejs/node.exe: --enable-etw-stack-walking is not allowed in NODE_OPTIONS

Additional information

It works from command line, as V8 flags are also accepted:
node --enable-etw-stack-walking

When it is working, Windows Performance Recorder with CPU usage recording capture properly the JIT generated code symbols, and those are visible from Windows Performance Analyzer sampled views including stack data. Though, often that's not convenient (i.e. for launching all scripts in a session with ETW stack walk enabled as when running from npm or yarn). Environment variable allows to enable ETW stack walk for the whole shell session or even system wide for all the NodeJS sessions.

There is the possibility, in the future, that ETW is enabled by default, and then this will not be required. This depends on confirming the overload of enabling ETW without an ongoing tracing session is null or almost null and is going to be discussed at V8 level. Meanwhile, it will be interesting to support ETW stack walk in a convenient way for NodeJS community.

jdapena added a commit to jdapena/node that referenced this issue Jan 13, 2023
V8 supports native stack walking in Windows by providing JIT code
information to ETW (Event Tracing for Windows). But the option to
enable it is not exposed in NodeJS.

Just add command line (and environment variable) support for
--enable-etw-stack-walking, that maps to V8 option of the same name.

Fixes: nodejs#46202
jdapena added a commit to jdapena/node that referenced this issue Jan 18, 2023
V8 supports native stack walking in Windows by providing JIT code
information to ETW (Event Tracing for Windows). But the option to
enable it is not exposed in NodeJS.

Just add command line (and environment variable) support for
--enable-etw-stack-walking, that maps to V8 option of the same name.

Fixes: nodejs#46202
nodejs-github-bot pushed a commit that referenced this issue Jan 24, 2023
V8 supports native stack walking in Windows by providing JIT code
information to ETW (Event Tracing for Windows). But the option to
enable it is not exposed in NodeJS.

Just add command line (and environment variable) support for
--enable-etw-stack-walking, that maps to V8 option of the same name.

Fixes: #46202
PR-URL: #46203
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
ruyadorno pushed a commit that referenced this issue Feb 1, 2023
V8 supports native stack walking in Windows by providing JIT code
information to ETW (Event Tracing for Windows). But the option to
enable it is not exposed in NodeJS.

Just add command line (and environment variable) support for
--enable-etw-stack-walking, that maps to V8 option of the same name.

Fixes: #46202
PR-URL: #46203
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
juanarbol pushed a commit that referenced this issue Mar 3, 2023
V8 supports native stack walking in Windows by providing JIT code
information to ETW (Event Tracing for Windows). But the option to
enable it is not exposed in NodeJS.

Just add command line (and environment variable) support for
--enable-etw-stack-walking, that maps to V8 option of the same name.

Fixes: #46202
PR-URL: #46203
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
juanarbol pushed a commit that referenced this issue Mar 5, 2023
V8 supports native stack walking in Windows by providing JIT code
information to ETW (Event Tracing for Windows). But the option to
enable it is not exposed in NodeJS.

Just add command line (and environment variable) support for
--enable-etw-stack-walking, that maps to V8 option of the same name.

Fixes: #46202
PR-URL: #46203
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant