Skip to content

v12: hangs on calling console.log with large object #29646

Closed
@pimlie

Description

@pimlie
  • 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]

Metadata

Metadata

Assignees

No one assigned

    Labels

    utilIssues and PRs related to the built-in util module.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions