Skip to content

Error: async hook stack has become corrupted (actual: 73, expected: 0) #38814

Closed
@hongbo-miao

Description

@hongbo-miao
  • Version: 16.2.0
  • Platform: Darwin 20.3.0 Darwin Kernel Version 20.3.0: Thu Jan 21 00:07:06 PST 2021; root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64
  • Subsystem:

What steps will reproduce the bug?

Clone the repo: https://github.com/Hongbo-Miao/bug-nodejs-16

nvm use 16.2.0
npm install
npm run dev

How often does it reproduce? Is there a required condition?

The server will first run successfully. However, if you hit any endpoint such as openning http://localhost:5000, the server will crash.

What is the expected behavior?

Expecting the app not crash.

What do you see instead?

Crash with error:

Error: async hook stack has become corrupted (actual: 73, expected: 0)
 1: 0x10a031d5b node::AsyncHooks::pop_async_context(double) [/Users/homiao/.nvm/versions/node/v16.2.0/bin/node]
 2: 0x10a031b0c node::InternalCallbackScope::Close() [/Users/homiao/.nvm/versions/node/v16.2.0/bin/node]
 3: 0x10a0315de node::InternalCallbackScope::~InternalCallbackScope() [/Users/homiao/.nvm/versions/node/v16.2.0/bin/node]
 4: 0x10a0a2b88 node::Environment::RunTimers(uv_timer_s*) [/Users/homiao/.nvm/versions/node/v16.2.0/bin/node]
 5: 0x10aaf6877 uv__run_timers [/Users/homiao/.nvm/versions/node/v16.2.0/bin/node]
 6: 0x10aafb0ad uv_run [/Users/homiao/.nvm/versions/node/v16.2.0/bin/node]
 7: 0x10a032ea4 node::SpinEventLoop(node::Environment*) [/Users/homiao/.nvm/versions/node/v16.2.0/bin/node]
 8: 0x10a143414 node::NodeMainInstance::Run(node::EnvSerializeInfo const*) [/Users/homiao/.nvm/versions/node/v16.2.0/bin/node]
 9: 0x10a0cf97d node::Start(int, char**) [/Users/homiao/.nvm/versions/node/v16.2.0/bin/node]
10: 0x7fff2057a621 start [/usr/lib/system/libdyld.dylib]
11: 0x5

Some other times, I got

/Users/hm/.nvm/versions/node/v16.2.0/bin/node[89516]: ../src/api/callback.cc:125:void node::InternalCallbackScope::Close(): Assertion `(env_->execution_async_id()) == (0)' failed.
 1: 0x10ebbf7e5 node::Abort() (.cold.1) [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
 2: 0x10d872b39 node::Abort() [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
 3: 0x10d8729a1 node::Assert(node::AssertionInfo const&) [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
 4: 0x10d7a2cdd node::InternalCallbackScope::Close() [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
 5: 0x10d7a25de node::InternalCallbackScope::~InternalCallbackScope() [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
 6: 0x10d813b88 node::Environment::RunTimers(uv_timer_s*) [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
 7: 0x10e267877 uv__run_timers [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
 8: 0x10e26c0ad uv_run [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
 9: 0x10d7a3ea4 node::SpinEventLoop(node::Environment*) [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
10: 0x10d8b4414 node::NodeMainInstance::Run(node::EnvSerializeInfo const*) [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
11: 0x10d84097d node::Start(int, char**) [/Users/hm/.nvm/versions/node/v16.2.0/bin/node]
12: 0x7fff2057a621 start [/usr/lib/system/libdyld.dylib]
13: 0x7

Additional information

It only happens in Node.js since 16.2.0.
@kamilogorek provided some useful info at
getsentry/sentry-javascript#3585 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    async_hooksIssues and PRs related to the async hooks subsystem.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions