镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Node.js crashed with the following stacktrace #29435

Description

Node.js crashes before sending response with the below stack trace.

  • Version: v8.16.1
  • Platform: Darwin mbp.domain.name 18.7.0 Darwin Kernel Version 18.7.0: Thu Jun 20 18:42:21 PDT 2019; root:xnu-4903.270.47~4/RELEASE_X86_64 x86_64
  • Subsystem:
node[3549]: ../src/node_http2.cc:1930:static void node::http2::Http2Session::OnStreamAllocImpl(size_t, uv_buf_t *, void *): Assertion `(session->stream_buf_.base) == (nullptr)' failed.
 1: node::Abort() [/usr/local/bin/node]
 2: node::(anonymous namespace)::DomainEnter(node::Environment*, v8::Local<v8::Object>) [/usr/local/bin/node]
 3: node::http2::Http2Session::OnStreamAllocImpl(unsigned long, uv_buf_t*, void*) [/usr/local/bin/node]
 4: node::TLSWrap::ClearOut() [/usr/local/bin/node]
 5: node::TLSWrap::DoRead(long, uv_buf_t const*, uv_handle_type) [/usr/local/bin/node]
 6: node::LibuvStreamWrap::OnRead(uv_stream_s*, long, uv_buf_t const*) [/usr/local/bin/node]
 7: uv__stream_io [/usr/local/bin/node]
 8: uv__io_poll [/usr/local/bin/node]
 9: uv_run [/usr/local/bin/node]
10: node::Start(v8::Isolate*, node::IsolateData*, int, char const* const*, int, char const* const*) [/usr/local/bin/node]
11: node::Start(uv_loop_s*, int, char const* const*, int, char const* const*) [/usr/local/bin/node]
12: node::Start(int, char**) [/usr/local/bin/node]
13: start [/usr/local/bin/node]
Waiting for the debugger to disconnect...

Process finished with exit code 0

The server uses Firestore as the backend. Kindly let me know how to fix this.

Activity

  1. mscdex commented on Sep 4, 2019

    @mscdex
    Contributor

    Even though this is a different backtrace, it may be the same underlying issue as #29353.

  2. added
    http2Issues and PRs related to the http2 subsystem.
    on Sep 4, 2019
  3. Trott commented on Sep 4, 2019

    @Trott
    Member

    @nodejs/http2

  4. mcollina commented on Sep 4, 2019

    @mcollina
    SponsorMember

    @jsloop42 would you mind to add a way to reproduce this crash?

    Could you try using Node 10 and see if the issue persists?

  5. addaleax commented on Sep 4, 2019

    @addaleax
    Member

    @mscdex That’s pretty unlikely, but it was probably also introduced in the v8.x backport of 8a4a193.

  6. addaleax commented on Sep 6, 2019

    @addaleax
    Member

    I’ve looked into this, but with the limited information available, I’d say either this is also addressed by #29399, or we need more information (e.g. a reproduction, a core dump, etc.).

  7. addaleax commented on Sep 19, 2019

    @addaleax
    Member

    @jsloop42 Thanks, but a reproduction or a core dump or something along those lines would really be more helpful. The npm debug log doesn’t really say more than that there was an error.

  8. TheMax2000 commented on Nov 26, 2019

    @TheMax2000

    I'm still having a similar problem when receiving a lot of messages from @google-cloud/pubsub.
    I'm on 8.16.2 and can reproduce fairly easily.

    * thread #1, name = 'node', stop reason = signal SIGABRT
      * frame #0: libc.so.6`__GI_raise(sig=2) at raise.c:51
        frame #1: libc.so.6`__GI_abort at abort.c:79
        frame #2: 0x00007ffeb7355461 node`node::Abort() + 33
        frame #3: 0x00007ffeb735587b node`node::Assert(char const* const (*) [4]) + 123
        frame #4: 0x00007ffeb738f81a node`node::http2::Http2Session::OnStreamAllocImpl(unsigned long, uv_buf_t*, void*) + 106
        frame #5: 0x00007ffeb742860a node`node::TLSWrap::ClearOut() + 154
        frame #6: 0x00007ffeb7428dee node`node::TLSWrap::OnReadImpl(long, uv_buf_t const*, uv_handle_type, void*) + 174
        frame #7: 0x00007ffeb73dc87c node`node::LibuvStreamWrap::OnRead(uv_stream_s*, long, uv_buf_t const*) + 124
        frame #8: node`uv__read(stream=<unavailable>) at stream.c:1257
        frame #9: node`uv__stream_io(loop=<unavailable>, w=<unavailable>, events=<unavailable>) at stream.c:1324
        frame #10: node`uv__io_poll(loop=<unavailable>, timeout=<unavailable>) at linux-core.c:375
        frame #11: node`uv_run(loop=<unavailable>, mode=<unavailable>) at core.c:370
        frame #12: 0x00007ffeb735eb65 node`node::Start(uv_loop_s*, int, char const* const*, int, char const* const*) + 1205
        frame #13: 0x00007ffeb735dda0 node`node::Start(int, char**) + 352
        frame #14: libc.so.6`__libc_start_main(main=(node`main), argc=5, argv=0x00007ffeb6e5fcb8, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007ffeb6e5fca8) at libc-start.c:310
        frame #15: 0x00007ffeb7327601 node`_start + 41
      thread #2, stop reason = signal 0
        frame #0: 0x00007f23d5b829f3 libpthread.so.0`__pthread_cond_wait + 579
        frame #1: node`uv_cond_wait(cond=<unavailable>, mutex=<unavailable>) at thread.c:735
        frame #2: 0x00007ffeb73ad234 node`node::BackgroundRunner(void*) + 116
        frame #3: 0x00007f23d5b7c6db libpthread.so.0`start_thread + 219
        frame #4: libc.so.6`__GI___clone at clone.S:95
      thread #3, stop reason = signal 0
        frame #0: 0x00007f23d5b856d6 libpthread.so.0`do_futex_wait.constprop.1 + 54
        frame #1: 0x00007f23d5b857c8 libpthread.so.0`__new_sem_wait_slow.constprop.0 + 152
        frame #2: node`uv_sem_wait at thread.c:579
        frame #3: node`uv_sem_wait(sem=<unavailable>) at thread.c:635
        frame #4: 0x00007ffeb73f7eda node`node::inspector::(anonymous namespace)::StartIoThreadMain(void*) + 26
        frame #5: 0x00007f23d5b7c6db libpthread.so.0`start_thread + 219
        frame #6: libc.so.6`__GI___clone at clone.S:95
      thread #4, stop reason = signal 0
        frame #0: 0x00007f23d5b829f3 libpthread.so.0`__pthread_cond_wait + 579
        frame #1: node`uv_cond_wait(cond=<unavailable>, mutex=<unavailable>) at thread.c:735
        frame #2: node`worker(arg=<unavailable>) at threadpool.c:76
        frame #3: 0x00007f23d5b7c6db libpthread.so.0`start_thread + 219
        frame #4: libc.so.6`__GI___clone at clone.S:95
      thread #5, stop reason = signal 0
        frame #0: 0x00007f23d5b829f3 libpthread.so.0`__pthread_cond_wait + 579
        frame #1: node`uv_cond_wait(cond=<unavailable>, mutex=<unavailable>) at thread.c:735
        frame #2: node`worker(arg=<unavailable>) at threadpool.c:76
        frame #3: 0x00007f23d5b7c6db libpthread.so.0`start_thread + 219
        frame #4: libc.so.6`__GI___clone at clone.S:95
      thread #6, stop reason = signal 0
        frame #0: 0x00007f23d5b829f3 libpthread.so.0`__pthread_cond_wait + 579
        frame #1: node`uv_cond_wait(cond=<unavailable>, mutex=<unavailable>) at thread.c:735
        frame #2: node`worker(arg=<unavailable>) at threadpool.c:76
        frame #3: 0x00007f23d5b7c6db libpthread.so.0`start_thread + 219
        frame #4: libc.so.6`__GI___clone at clone.S:95
      thread #7, stop reason = signal 0
        frame #0: 0x00007f23d5b829f3 libpthread.so.0`__pthread_cond_wait + 579
        frame #1: node`uv_cond_wait(cond=<unavailable>, mutex=<unavailable>) at thread.c:735
        frame #2: 0x00007ffeb73ad234 node`node::BackgroundRunner(void*) + 116
        frame #3: 0x00007f23d5b7c6db libpthread.so.0`start_thread + 219
        frame #4: libc.so.6`__GI___clone at clone.S:95
      thread #8, stop reason = signal 0
        frame #0: 0x00007f23d5b829f3 libpthread.so.0`__pthread_cond_wait + 579
        frame #1: node`uv_cond_wait(cond=<unavailable>, mutex=<unavailable>) at thread.c:735
        frame #2: node`worker(arg=<unavailable>) at threadpool.c:76
        frame #3: 0x00007f23d5b7c6db libpthread.so.0`start_thread + 219
        frame #4: libc.so.6`__GI___clone at clone.S:95
      thread #9, stop reason = signal 0
        frame #0: 0x00007f23d5b829f3 libpthread.so.0`__pthread_cond_wait + 579
        frame #1: node`uv_cond_wait(cond=<unavailable>, mutex=<unavailable>) at thread.c:735
        frame #2: 0x00007ffeb73ad234 node`node::BackgroundRunner(void*) + 116
        frame #3: 0x00007f23d5b7c6db libpthread.so.0`start_thread + 219
        frame #4: libc.so.6`__GI___clone at clone.S:95
      thread #10, stop reason = signal 0
        frame #0: libc.so.6`__GI_epoll_pwait(epfd=11, events=0x00007f23d1de6850, maxevents=1024, timeout=-1, set=0x0000000000000000) at epoll_pwait.c:42
        frame #1: node`uv__io_poll(loop=<unavailable>, timeout=<unavailable>) at linux-core.c:275
        frame #2: node`uv_run(loop=<unavailable>, mode=<unavailable>) at core.c:370
        frame #3: 0x00007ffeb73fcbc4 node`void node::inspector::InspectorIo::ThreadMain<node::inspector::InspectorSocketServer>() + 596
        frame #4: 0x00007f23d5b7c6db libpthread.so.0`start_thread + 219
        frame #5: libc.so.6`__GI___clone at clone.S:95
      thread #11, stop reason = signal 0
        frame #0: 0x00007f23d5b829f3 libpthread.so.0`__pthread_cond_wait + 579
        frame #1: node`uv_cond_wait(cond=<unavailable>, mutex=<unavailable>) at thread.c:735
        frame #2: 0x00007ffeb73ad234 node`node::BackgroundRunner(void*) + 116
        frame #3: 0x00007f23d5b7c6db libpthread.so.0`start_thread + 219
        frame #4: libc.so.6`__GI___clone at clone.S:95
    
  9. dobromyslov commented on Jan 2, 2020

    @dobromyslov

    I have same crash when use pubsub subscription.

  10. dobromyslov commented on Jan 2, 2020

    @dobromyslov

    Updated to 10.18.0. Everything is ok there. But Node 10 is Beta in Google Cloud Functions.

  11. BridgeAR commented on Jan 2, 2020

    @BridgeAR
    Member

    @dobromyslov thanks for your confirmation.

    Node.js v8.x is end-of-life and won't receive any fixes anymore. I am closing this, since the issue seems to be specific about v8.x. If it does happen on any other release line, please leave a comment so that this is reopened.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    http2Issues and PRs related to the http2 subsystem.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions