nuxt / nuxt

The Intuitive Vue Framework.

Home Page:https://nuxt.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

During the development process, the error Last few GCs will be reported.

WooHoo-Wu opened this issue · comments

Environment

Operating System:Mac
Node Version: v18.18.0
Nuxt Version: 3.11.2
CLI Version: 3.11.2
Nitro Version: 2.9.6
Package Manager: npm@8.15.0
Builder: -
User Config: devtools
Runtime Modules: -
Build Modules: -

Reproduction

Hard to find, don’t know what the problem is

Describe the bug

During the development process, the memory suddenly exceeded the limit, but the computer did not freeze at all and there was no delay. The project suddenly reported an error.
I am using a MacBook Pro M2 with 16GB of running memory.
The project runs in the development environment for about a day. I can't imagine what will happen after it is deployed online.
And the performance of Nuxt3 seems not enough. In my test, the qps of my project can only reach about 20.

Additional context

No response

Logs

<--- Last few GCs --->

[97432:0x110008000] 83330831 ms: Mark-sweep (reduce) 361.8 (411.0) -> 360.4 (393.9) MB, 49.2 / 0.0 ms  (average mu = 0.988, current mu = 0.187) last resort; GC in old space requested
[97432:0x110008000] 83330896 ms: Mark-sweep (reduce) 360.4 (393.9) -> 360.4 (393.9) MB, 65.1 / 0.0 ms  (average mu = 0.974, current mu = 0.000) last resort; GC in old space requested


<--- JS stacktrace --->

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: 0x10211fc40 node::Abort() [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
 2: 0x10211fe24 node::ModifyCodeGenerationFromStrings(v8::Local<v8::Context>, v8::Local<v8::Value>, bool) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
 3: 0x10227727c v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
 4: 0x10241569c v8::internal::MemoryController<v8::internal::V8HeapTrait>::MinimumAllocationLimitGrowingStep(v8::internal::Heap::HeapGrowingMode) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
 5: 0x1023fa0a0 v8::internal::Factory::CodeBuilder::AllocateCode(bool) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
 6: 0x1023f99cc v8::internal::Factory::CodeBuilder::BuildInternal(bool) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
 7: 0x1023fa358 v8::internal::Factory::CodeBuilder::Build() [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
 8: 0x1029edf90 v8::internal::RegExpMacroAssemblerARM64::GetCode(v8::internal::Handle<v8::internal::String>) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
 9: 0x10276b73c v8::internal::RegExpCompiler::Assemble(v8::internal::Isolate*, v8::internal::RegExpMacroAssembler*, v8::internal::RegExpNode*, int, v8::internal::Handle<v8::internal::String>) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
10: 0x10278c9ec v8::internal::RegExpImpl::Compile(v8::internal::Isolate*, v8::internal::Zone*, v8::internal::RegExpCompileData*, v8::base::Flags<v8::internal::RegExpFlag, int>, v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>, bool, unsigned int&) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
11: 0x10278c110 v8::internal::RegExpImpl::CompileIrregexp(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSRegExp>, v8::internal::Handle<v8::internal::String>, bool) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
12: 0x10278b2ec v8::internal::RegExpImpl::IrregexpPrepare(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSRegExp>, v8::internal::Handle<v8::internal::String>) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
13: 0x10278b658 v8::internal::RegExpImpl::IrregexpExec(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSRegExp>, v8::internal::Handle<v8::internal::String>, int, v8::internal::Handle<v8::internal::RegExpMatchInfo>, v8::internal::RegExp::ExecQuirks) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
14: 0x10278b42c v8::internal::RegExp::Exec(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSRegExp>, v8::internal::Handle<v8::internal::String>, int, v8::internal::Handle<v8::internal::RegExpMatchInfo>, v8::internal::RegExp::ExecQuirks) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
15: 0x1027a947c v8::internal::Runtime_RegExpExec(int, unsigned long*, v8::internal::Isolate*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
16: 0x102ae904c Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
17: 0x102b46074 Builtins_RegExpPrototypeTest [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
18: 0x1602d79c8 
19: 0x102afb850 Builtins_ArrayPrototypeFind [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
20: 0x1603755a8 
21: 0x160376304 
22: 0x160416284 
23: 0x1635eb388 
24: 0x102aa9728 Builtins_LoadIC [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
25: 0x160416444 
26: 0x1635eb388 
27: 0x102aa9728 Builtins_LoadIC [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
28: 0x16041a250 
29: 0x1653cf0f0 
30: 0x1635b0fcc 
31: 0x102b36994 Builtins_ProxyGetProperty [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
32: 0x1602c8840 
33: 0x163593ac4 
34: 0x1635e1fd0 
35: 0x163d5e220 
36: 0x1635e2250 
37: 0x163d5e220 
38: 0x162051980 
39: 0x102a74198 Builtins_InterpreterEntryTrampoline [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
40: 0x1635e34f4 
41: 0x163d5e220 
42: 0x16039d160 
43: 0x160397128 
44: 0x1635e2da4 
45: 0x163d5e220 
46: 0x16039d160 
47: 0x160397128 
48: 0x1635e2da4 
49: 0x163d5e220 
50: 0x162051980 
51: 0x102a74198 Builtins_InterpreterEntryTrampoline [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
52: 0x1635e34f4 
53: 0x163d5e220 
54: 0x1635e2250 
55: 0x16052b9bc 
56: 0x102b34738 Builtins_PromiseFulfillReactionJob [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
57: 0x102a97c4c Builtins_RunMicrotasks [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
58: 0x102a723a4 Builtins_JSRunMicrotasksEntry [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
59: 0x1023a39ac v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
60: 0x1023a3e9c v8::internal::(anonymous namespace)::InvokeWithTryCatch(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
61: 0x1023a4078 v8::internal::Execution::TryRunMicrotasks(v8::internal::Isolate*, v8::internal::MicrotaskQueue*, v8::internal::MaybeHandle<v8::internal::Object>*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
62: 0x1023ca7e0 v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
63: 0x1023caf7c v8::internal::MicrotaskQueue::PerformCheckpoint(v8::Isolate*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
64: 0x1022e7680 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
65: 0x1022e7170 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
66: 0x1022e69c8 v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
67: 0x102ae918c Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
68: 0x1601c8888 
69: 0x102a724d0 Builtins_JSEntryTrampoline [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
70: 0x102a72164 Builtins_JSEntry [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
71: 0x1023a39dc v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
72: 0x1023a2f1c v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
73: 0x10229311c v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
74: 0x102064d08 node::InternalCallbackScope::Close() [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
75: 0x102064fd0 node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
76: 0x10207a36c node::AsyncWrap::MakeCallback(v8::Local<v8::Function>, int, v8::Local<v8::Value>*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
77: 0x1021d40b0 node::StreamBase::CallJSOnreadMethod(long, v8::Local<v8::ArrayBuffer>, unsigned long, node::StreamBase::StreamBaseJSChecks) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
78: 0x1021d55b0 node::EmitToJSStreamListener::OnStreamRead(long, uv_buf_t const&) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
79: 0x1021d9694 node::LibuvStreamWrap::OnUvRead(long, uv_buf_t const*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
80: 0x1021d9e00 node::LibuvStreamWrap::ReadStart()::$_1::__invoke(uv_stream_s*, long, uv_buf_t const*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
81: 0x102a5e294 uv__stream_io [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
82: 0x102a65b98 uv__io_poll [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
83: 0x102a54084 uv_run [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
84: 0x1020656e0 node::SpinEventLoop(node::Environment*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
85: 0x1021c0e20 node::worker::Worker::Run() [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
86: 0x1021c3d20 node::worker::Worker::StartThread(v8::FunctionCallbackInfo<v8::Value> const&)::$_3::__invoke(void*) [/Users/woohoo/.nvm/versions/node/v18.18.0/bin/node]
87: 0x18ef41034 _pthread_start [/usr/lib/system/libsystem_pthread.dylib]
88: 0x18ef3be3c thread_start [/usr/lib/system/libsystem_pthread.dylib]

 ERROR  [unhandledRejection] socket hang up                                                                                                                                17:08:47

  at connResetException (node:internal/errors:720:14)
  at Socket.socketOnEnd (node:_http_client:525:23)
  at Socket.emit (node:events:529:35)
  at endReadableNT (node:internal/streams/readable:1368:12)
  at process.processTicksAndRejections (node:internal/process/task_queues:82:21)


 ERROR  [unhandledRejection] connect ECONNREFUSED 127.0.0.1:59111                                                                                                          17:08:47

  at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16)


 ERROR  [unhandledRejection] connect ECONNREFUSED 127.0.0.1:59111                                                                                                          17:09:14

  at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16)


 ERROR  [unhandledRejection] connect ECONNREFUSED 127.0.0.1:59111                                                                                                          17:09:14

  at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16)

The memory usage of the Vite dev server is very different from a built/deployed Nuxt app.

Rollup is known to consume a lot of memory when building, which may be relevant here also.

If you think there is a memory issue with Nuxt, please do provide a reproduction and I'll happily look into it. 🙏