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

Invalid JSX blows up with: JavaScript heap out of memory #91

Closed
moroshko opened this issue Jul 23, 2020 · 1 comment
Closed

Invalid JSX blows up with: JavaScript heap out of memory #91

moroshko opened this issue Jul 23, 2020 · 1 comment

Comments

@moroshko
Copy link

Invalid JSX blows up instead of throwing a parse error:

  • meriyah: 2.1.0
  • node: 12.18.2
const { parse } = require("meriyah");

parse("<foo", { jsx: true });

<--- Last few GCs --->
at[52837:0x102d99000] 7668 ms: Mark-sweep 2007.5 (2012.0) -> 2007.5 (2012.0) MB, 1284.2 / 0.0 ms (+ 43.0 ms in 4 steps since start of marking, biggest step 11.3 ms, walltime since start of marking 1332 ms) (average mu = 0.185, current mu = 0.126) alloc[52837:0x102d99000] 9029 ms: Mark-sweep 2027.9 (2032.5) -> 2027.9 (2032.5) MB, 1156.5 / 0.0 ms (+ 31.4 ms in 4 steps since start of marking, biggest step 8.1 ms, walltime since start of marking 1193 ms) (average mu = 0.156, current mu = 0.127) alloca

<--- JS stacktrace --->

==== JS stack trace =========================================

0: ExitFrame [pc: 0x1009ce8d9]

Security context: 0x008d2e4008d1
1: parseJSXAttributes(aka parseJSXAttributes) [0x8d2f787871] [/Users/misha/temp/node_modules/meriyah/dist/meriyah.umd.js:~6314] [pc=0x3a97ccb87e79](this=0x008d699c04b1 ,0x008d995c0e69 ,8208)
2: parseJSXOpeningFragmentOrSelfCloseElement(aka parseJSXOpeningFragmentOrSelfCloseElement) [0x8d2f7878b1] [/Users/misha/temp/...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0x1011bdf85 node::Abort() (.cold.1) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
2: 0x10009d569 node::Abort() [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
3: 0x10009d6cf node::OnFatalError(char const*, char const*) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
4: 0x1001de957 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
5: 0x1001de8f7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
6: 0x100364635 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
7: 0x100365e8a v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
8: 0x10036290e v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
9: 0x1003606c0 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
10: 0x10036c4ea v8::internal::Heap::AllocateRawWithLightRetry(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
11: 0x10036c571 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
12: 0x10033a78a v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
13: 0x100689cc0 v8::internal::Runtime_AllocateInOldGeneration(int, unsigned long*, v8::internal::Isolate*) [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
14: 0x1009ce8d9 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/misha/.nvm/versions/node/v12.18.2/bin/node]
15: 0x3a97ccb87e79
Abort trap: 6

@3cp
Copy link
Member

3cp commented Jul 24, 2020

Sounds like a missing check on EOF in jsx parser.

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

2 participants