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