Here is the bug I noticed today. This code
(_=>_(_))(_=>eval(`(${_})(${_})`))
in Chrome throws RangeError: Maximum call stack size exceeded, in Firefox throws InternalError: too much recursion, but in Node.js crashes the process with no warnings or errors. Tried reducing max old space size and also tried reducing stack size, but the bug persists.
sorry for bad english
FWIW it doesn't crash for me on Linux with no special node parameters.
Running this within the repl, I get a proper (if not extremely verbose) error.
not sure if it helps, but here is my output:
C:\>node
> (_=>_(_))(_=>eval(`(${_})(${_})`))
C:\>echo %ERRORLEVEL%
-1073741571
C:\>
and same if run like node server.js same happen
For me, on Windows 7 x64, this crashes REPL with no errors on 06.14.3, 08.11.3, 10.5.0, last nightly and canary.
-1073741571 is 0xC00000FD which is stack overflow
-1073741571 is 0xC00000FD which is stack overflow
I think it would be better if Node.js throws an error in case of stack owerflow (like browsers do) instead of terminating the process.
this is fixed via https://github.com/nodejs/node/pull/26832 . Closing, pls re-open if I am wrong
Issue #26829 is unrelated (as explained in https://github.com/nodejs/node/issues/26829#issuecomment-475097173) and thus #26832 is also unrelated. I can confirm that this issue still reproduces (on master) on some platforms, including windows 8.1
The real issue is v8:8053. I reported it more than a year ago, they confirmed the issue, but still no updates. Note that the issue also reproduces in Chrome.
thanks @Hakerh400 for the explanation. seeing the linked issue, and seeing that this is not happening in mac where I tested, I thought this is fixed. re-opening.
Does not reproduce on master and in v14.0.0. If nobody can reproduce on master I think this can be closed.
Does not reproduce on master and in v14.0.0. If nobody can reproduce on master I think this can be closed.
Thank you @Hakerh400, closing.
Most helpful comment
FWIW it doesn't crash for me on Linux with no special node parameters.