Skip to content

fix(ext/node): validate execArgv flags in worker_threads instead of rejecting all#32145

Merged
bartlomieju merged 1 commit intodenoland:mainfrom
bartlomieju:fix/worker-execargv
Feb 13, 2026
Merged

fix(ext/node): validate execArgv flags in worker_threads instead of rejecting all#32145
bartlomieju merged 1 commit intodenoland:mainfrom
bartlomieju:fix/worker-execargv

Conversation

@bartlomieju
Copy link
Copy Markdown
Member

Summary

  • Validate execArgv flags against process.allowedNodeEnvironmentFlags and
    a set of worker-disallowed per-process flags, instead of rejecting all
    non-empty execArgv arrays
  • Pass execArgv through worker metadata so process.execArgv is set
    correctly inside the worker
  • Set process.traceProcessWarnings when --trace-warnings is present in
    execArgv
  • Add worker.stderr forwarding from worker to parent via internal messages
  • Apply the same flag validation to NODE_OPTIONS env variable

Closes the gap for test-worker-execargv.js while keeping
test-worker-execargv-invalid.js passing.

Test plan

  • cargo test --test node_compat parallel -- --filter test-worker-execargv.js passes
  • cargo test --test node_compat parallel -- --filter test-worker-execargv-invalid.js still passes

🤖 Generated with Claude Code

… rejecting all

Previously, creating a `Worker` with any non-empty `execArgv` array threw
`ERR_WORKER_INVALID_EXEC_ARGV`. This change validates each flag against
`process.allowedNodeEnvironmentFlags` and a set of worker-disallowed
per-process flags, accepting valid flags like `--trace-warnings`.

- Pass `execArgv` through worker metadata so `process.execArgv` is set
  correctly inside the worker
- Set `process.traceProcessWarnings` when `--trace-warnings` is present
- Add `worker.stderr` forwarding via internal messages so the parent can
  read the worker's stderr output
- Apply the same validation logic to `NODE_OPTIONS` env variable

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@fraidev fraidev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@bartlomieju bartlomieju merged commit cf25db5 into denoland:main Feb 13, 2026
23 checks passed
@bartlomieju bartlomieju deleted the fix/worker-execargv branch February 13, 2026 10:13
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 this pull request may close these issues.

2 participants