Skip to content

Segfault in node::Environment::KickNextTick #2928

Description

@stephank

We're encountering a segfault during load testing of an http-based application, also using express and sockjs. In particular, the load test establishes a whole bunch of long-lived web socket connections, and the application crashes while we ramp up connections.

This is with official 64-bit Linux binaries on Ubuntu 15.04 (EC2 ami-df95b5a8). The backtraces and the fact that the crashes don't seem to occur on io.js 3.2.0 make me suspect #2355 is related.

Backtrace from io.js 3.3.0:

Program received signal SIGSEGV, Segmentation fault.
0x00000000008f0a03 in v8::Isolate::SuppressMicrotaskExecutionScope::SuppressMicrotaskExecutionScope(v8::Isolate*) ()
(gdb) bt
#0  0x00000000008f0a03 in v8::Isolate::SuppressMicrotaskExecutionScope::SuppressMicrotaskExecutionScope(v8::Isolate*) ()
#1  0x0000000000b84113 in v8::internal::Isolate::RunMicrotasks() ()
#2  0x0000000000da5ad8 in node::Environment::KickNextTick() ()
#3  0x0000000000dd860f in node::Parser::OnReadImpl(long, uv_buf_t const*, uv_handle_type, void*) ()
#4  0x0000000000deda53 in node::StreamWrap::OnRead(uv_stream_s*, long, uv_buf_t const*) ()
#5  0x0000000000f66d8f in uv__read (stream=stream@entry=0x3b2c510) at ../deps/uv/src/unix/stream.c:1178
#6  0x0000000000f67400 in uv__stream_io (loop=, w=0x3b2c598, events=1) at ../deps/uv/src/unix/stream.c:1241
#7  0x0000000000f6cc45 in uv__io_poll (loop=loop@entry=0x180d000 , timeout=0) at ../deps/uv/src/unix/linux-core.c:345
#8  0x0000000000f5dfd6 in uv_run (loop=0x180d000 , mode=UV_RUN_ONCE) at ../deps/uv/src/unix/core.c:341
#9  0x0000000000dbdaa8 in node::Start(int, char**) ()
#10 0x00007fc5d03c8a40 in __libc_start_main (main=0x71e340 , argc=5, argv=0x7fff26b15868, init=, fini=,
    rtld_fini=, stack_end=0x7fff26b15858) at libc-start.c:289
#11 0x000000000071e53d in _start ()
Warning: the current language does not match this frame.

Backtrace on node.js 4.1.0:

Program received signal SIGSEGV, Segmentation fault.
0x0000000000dd722e in node::Environment::KickNextTick() ()
(gdb) bt
#0  0x0000000000dd722e in node::Environment::KickNextTick() ()
#1  0x0000000000e09c0f in node::Parser::OnReadImpl(long, uv_buf_t const*, uv_handle_type, void*) ()
#2  0x0000000000e1f0f3 in node::StreamWrap::OnRead(uv_stream_s*, long, uv_buf_t const*) ()
#3  0x0000000000f9930f in uv__read (stream=stream@entry=0x2855d70) at ../deps/uv/src/unix/stream.c:1178
#4  0x0000000000f99980 in uv__stream_io (loop=, w=0x2855df8, events=1) at ../deps/uv/src/unix/stream.c:1241
#5  0x0000000000f9f1c5 in uv__io_poll (loop=loop@entry=0x1859ec0 , timeout=0) at ../deps/uv/src/unix/linux-core.c:345
#6  0x0000000000f90566 in uv_run (loop=0x1859ec0 , mode=UV_RUN_ONCE) at ../deps/uv/src/unix/core.c:341
#7  0x0000000000def3f0 in node::Start(int, char**) ()
#8  0x00007febbf92aa40 in __libc_start_main (main=0x719210 , argc=5, argv=0x7ffcef1aca88, init=, fini=,
    rtld_fini=, stack_end=0x7ffcef1aca78) at libc-start.c:289
#9  0x000000000071940d in _start ()
Warning: the current language does not match this frame.

Activity

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

    c++Issues and PRs that require attention from people who are familiar with C++.httpIssues and PRs related to the http subsystem.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions