v12: hangs on calling console.log with large object
- Version: v12.10.0
- Platform: Linux x64
- Subsystem:
Unfortunately I was unable to reproduce this with a small circular object, I think at least it has something to do with circularity, no idea what else could cause this.
Reproduction is here, this tries to log a full VueComponent: https://github.com/pimlie/node-v12-util-inspect-issue
Steps:
- clone & install
- run:
node --inspect ./node_modules/.bin/nuxt
- attach debugger
- browse to http://localhost:3000
- node now hangs, webpage never loads
- If you now try to record a CPU profile it will kill node and log the error below
Tested v10.16.3
and v8.16.1
which both work fine. Possibly related to #29592?
internal/util/inspect.js:423
function getCtxStyle(value, constructor, tag) {
^
RangeError: Maximum call stack size exceeded
at getCtxStyle (internal/util/inspect.js:423:21)
at formatRaw (internal/util/inspect.js:764:29)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at inspect (internal/util/inspect.js:221:10)
at getConstructorName (internal/util/inspect.js:375:49)
at formatRaw (internal/util/inspect.js:573:23)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
at formatRaw (internal/util/inspect.js:761:9)
at formatValue (internal/util/inspect.js:567:10)
at formatProperty (internal/util/inspect.js:1371:11)
FATAL ERROR:
node::inspector::Agent::ToggleAsyncHook Cannot toggle Inspector's AsyncHook, please report this.
1: 0x9bcb80 node::Abort() [node]
2: 0x9bdd16 node::OnFatalError(char const*, char const*) [node]
3: 0x9bde09 [node]
4: 0xa90108 [node]
5: 0x116f8c4 v8_inspector::V8Debugger::setAsyncCallStackDepth(v8_inspector::V8DebuggerAgentImpl*, int) [node]
6: 0x1178361 v8_inspector::V8DebuggerAgentImpl::disable() [node]
7: 0x125a268 v8_inspector::protocol::Debugger::DispatcherImpl::disable(int, v8_inspector::String16 const&, v8_inspector::protocol::ProtocolMessage const&, std::unique_ptr<v8_inspector::protocol::DictionaryValue, std::default_delete<v8_inspector::protocol::DictionaryValue> >, v8_inspector::protocol::ErrorSupport*) [node]
8: 0x1268978 v8_inspector::protocol::Debugger::DispatcherImpl::dispatch(int, v8_inspector::String16 const&, v8_inspector::protocol::ProtocolMessage const&, std::unique_ptr<v8_inspector::protocol::DictionaryValue, std::default_delete<v8_inspector::protocol::DictionaryValue> >) [node]
9: 0x124c1e2 v8_inspector::protocol::UberDispatcher::dispatch(int, v8_inspector::String16 const&, std::unique_ptr<v8_inspector::protocol::Value, std::default_delete<v8_inspector::protocol::Value> >, v8_inspector::protocol::ProtocolMessage const&) [node]
10: 0x1190682 v8_inspector::V8InspectorSessionImpl::dispatchProtocolMessage(v8_inspector::StringView const&) [node]
11: 0xa8b74e [node]
12: 0xaac94d [node]
13: 0xaaaece [node]
14: 0xaab242 [node]
15: 0xc7405b v8::internal::Isolate::InvokeApiInterruptCallbacks() [node]
16: 0xc61165 v8::internal::StackGuard::HandleInterrupts() [node]
17: 0xfc9417 v8::internal::Runtime_StackGuard(int, unsigned long*, v8::internal::Isolate*) [node]
18: 0x134e879 [node]