Closed
Description
- 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)