Closed
Description
This is a tricky one but we have started noticing processes getting stuck on 100% cpu (live lock) since updating to Node 18.3.
Doing a debug breakpoint in the process shows us a lot of time is spent in:
(gdb) bt
#0 0x0000000000b9a6e4 in node::http2::Http2Session::OnStreamClose(nghttp2_session*, int, unsigned int, void*) ()
#1 0x0000000000af2e3c in node::Environment::RunAndClearNativeImmediates(bool) ()
#2 0x0000000000af3446 in node::Environment::CheckImmediate(uv_check_s*) ()
#3 0x000000000165abb9 in uv__run_check (loop=loop@entry=0x5278e80 <default_loop_struct>) at ../deps/uv/src/unix/loop-watcher.c:67
#4 0x00000000016532f0 in uv_run (loop=0x5278e80 <default_loop_struct>, mode=UV_RUN_DEFAULT) at ../deps/uv/src/unix/core.c:420
#5 0x0000000000aafa2d in node::SpinEventLoop(node::Environment*) ()
#6 0x0000000000bb11f4 in node::NodeMainInstance::Run() ()
#7 0x0000000000b26c44 in node::LoadSnapshotDataAndRun(node::SnapshotData const**, node::InitializationResult const*) ()
#8 0x0000000000b2a83f in node::Start(int, char**) ()
#9 0x00007f87ed3abd0a in __libc_start_main (main=0xaa5910 <main>, argc=2, argv=0x7ffd7edcaee8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd7edcaed8) at ../csu/libc-start.c:308
#10 0x0000000000aad7ee in _start ()
We suspect https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V18.md#18.13.0 but it's difficult to know for sure.
We've rolled back to 18.12.1 and will be observing if it keeps happening.