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

v6.12.0: max-old-space-size can no longer be set via NODE_OPTIONS #16999

Closed
knolleary opened this issue Nov 13, 2017 · 9 comments
Closed

v6.12.0: max-old-space-size can no longer be set via NODE_OPTIONS #16999

knolleary opened this issue Nov 13, 2017 · 9 comments

Comments

@knolleary
Copy link

knolleary commented Nov 13, 2017

  • v6.12.0
  • Darwin nolmac.local 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64 x86_64

As of node 6.12.0, the V8 option --max-old-space-size is no longer accepted in the NODE_OPTIONS environment variable and node exits with an error if specified.

With 6.11.5, the following works:

$ nvm use 6.11
Now using node v6.11.5 (npm v3.10.10)
$ NODE_OPTIONS="--max-old-space-size=128" node -v
v6.11.5

With 6.12.0, it fails:

$ nvm use 6.12
Now using node v6.12.0 (npm v3.10.10)
$ NODE_OPTIONS="--max-old-space-size=128" node -v
node: --max-old-space-size=128 is not allowed in NODE_OPTIONS

I can't find the release notes for 6.12 in case this was an intentional change, but the docs still list it as a valid option to specify via NODE_OPTIONS: https://nodejs.org/api/cli.html#cli_node_options_options

@vsemozhetbyt
Copy link
Contributor

vsemozhetbyt commented Nov 13, 2017

Some tests on Windows 7 x64, cmd.exe shell:

> set NODE_OPTIONS="--max-old-space-size=128" && node.06.12.0.exe -v
node.06.12.0.exe: "--max-old-space-size=128" is not supported in NODE_OPTIONS

> set NODE_OPTIONS="--max_old_space_size=128" && node.06.12.0.exe -v
node.06.12.0.exe: "--max_old_space_size=128" is not supported in NODE_OPTIONS

> set NODE_OPTIONS=--max-old-space-size=128 && node.06.12.0.exe -v
node.06.12.0.exe: --max-old-space-size=128 is not allowed in NODE_OPTIONS

> set NODE_OPTIONS=--max_old_space_size=128 && node.06.12.0.exe -v
v6.12.0

@vsemozhetbyt
Copy link
Contributor

vsemozhetbyt commented Nov 13, 2017

With the last current:

> set NODE_OPTIONS="--max-old-space-size=128" && node -v
node: "--max-old-space-size=128" is not supported in NODE_OPTIONS

> set NODE_OPTIONS="--max_old_space_size=128" && node -v
node: "--max_old_space_size=128" is not supported in NODE_OPTIONS

> set NODE_OPTIONS=--max-old-space-size=128 && node -v
v9.1.0

> set NODE_OPTIONS=--max_old_space_size=128 && node -v
v9.1.0

@knolleary
Copy link
Author

On my OSX x64 (first entry same as in my original comment):

$ NODE_OPTIONS="--max-old-space-size=128" node -v
node: --max-old-space-size=128 is not allowed in NODE_OPTIONS

$ NODE_OPTIONS="--max_old_space_size=128" node -v
v6.12.0

@gibfahn
Copy link
Member

gibfahn commented Nov 13, 2017

As of node 6.12.0, the V8 option --max-old-space-size is no longer accepted in the NODE_OPTIONS environment variable and node exits with an error if specified.

6.12.0 is the first 6.x release to include NODE_OPTIONS, the command doesn't error in 6.11.5 because the env var isn't read.

Test with --debug-brk (note there's no debugger statement on the second line):

▶▶▶ nvm use 6.12.0                                                                                                                                                        ~/wrk/com/node 1s (2fdb606dac*)
Now using node v6.12.0 (npm v3.10.10)
▶▶▶ NODE_OPTIONS=--debug-brk node                                                                                                                                         ~/wrk/com/node 1s (2fdb606dac*)
Debugger listening on [::]:5858
> %                                                                                                                                                                                                       ▶▶▶ nvm use 6.11.5                                                                                                                                                           ~/wrk/com/node (2fdb606dac*)
Now using node v6.11.5 (npm v3.10.10)
▶▶▶ NODE_OPTIONS=--debug-brk node                                                                                                                                         ~/wrk/com/node 1s (2fdb606dac*)
> % 

It was added in #12028, you can see the PR in the release post.

@knolleary
Copy link
Author

@gibfahn ahhh that explains a lot, and I now see why I was getting confused by this.

Our service script uses an env var called NODE_OPTIONS to pass options to node:

ExecStart=/usr/bin/env node-red-pi $NODE_OPTIONS $NODE_RED_OPTIONS

An unfortunate clash of names now that NODE_OPTIONS is also used by the node executable itself.

@gibfahn
Copy link
Member

gibfahn commented Nov 13, 2017

Sounds like there was some other stuff going on in your case, but I'll take this as a vote for backporting #14093 to v6.x.

@knolleary
Copy link
Author

Oh, but is there still an issue here though...

$ NODE_OPTIONS="--max-old-space-size=128" node -v
node: --max-old-space-size=128 is not allowed in NODE_OPTIONS

$ NODE_OPTIONS="--max_old_space_size=128" node -v
v6.12.0

max-old-space-size is rejected but max_old_space_size works. The docs say the former should be accepted. Is that down to the underlying V8 version?

@knolleary
Copy link
Author

Ah - that'll be where #14093 comes in

@Malik-Jehangir
Copy link

This is only supported in node version 8

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

No branches or pull requests

4 participants