Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

segfault on node v6.3.1 on Ubuntu 14.04.4 #8074

Closed
msakrejda opened this issue Aug 11, 2016 · 62 comments
Closed

segfault on node v6.3.1 on Ubuntu 14.04.4 #8074

msakrejda opened this issue Aug 11, 2016 · 62 comments
Labels
c++ Issues and PRs that require attention from people who are familiar with C++. confirmed-bug Issues with confirmed bugs. tls Issues and PRs related to the tls subsystem.

Comments

@msakrejda
Copy link

  • Version: v6.3.1
  • Platform: Ubuntu 14.04.4 LTS (Heroku)
  • Subsystem: ?

Hello,

I seem to be able to fairly reliably (maybe 50% of the time) reproduce a segfault with node v6.3.1 in my express application. I'm not using any native modules (except for segfault-handler to get the trace output below, and the error of course also occurs without segfault-handler).

This is the output I get:

PID 17 received SIGSEGV for address: 0x753760f
/app/node_modules/segfault-handler/build/Release/segfault-handler.node(+0x1b04)[0x7f1fd8283b04]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x10330)[0x7f1fdce8b330]
node(_ZN4node7TLSWrap7IsAliveEv+0x16)[0x1026586]
node(_ZN4node10StreamBase5GetFDINS_7TLSWrapEEEvN2v85LocalINS3_6StringEEERKNS3_20PropertyCallbackInfoINS3_5ValueEEE+0x92)[0x102b192]
node(_ZN2v88internal25PropertyCallbackArguments4CallEPFvNS_5LocalINS_4NameEEERKNS_20PropertyCallbackInfoINS_5ValueEEEES4_+0xd2)[0x981c12]
node(_ZN2v88internal6Object23GetPropertyWithAccessorEPNS0_14LookupIteratorE+0x1bd)[0xd16c1d]
node(_ZN2v88internal6Object11GetPropertyEPNS0_14LookupIteratorE+0x13b)[0xd51c2b]
node(_ZN2v88internal6LoadIC4LoadENS0_6HandleINS0_6ObjectEEENS2_INS0_4NameEEE+0x145)[0xcbc1c5]
node[0xcbcfdc]
node(_ZN2v88internal24Runtime_KeyedLoadIC_MissEiPPNS0_6ObjectEPNS0_7IsolateE+0x112)[0xcbfef2]
[0x1367f3c0961b]

The error seems to happen right after I send a message to a client via socket.io, but the message itself seems to send correctly (that is, I see a log line after the .emit).

I looked at the other open issues mentioning segfaults, but I did not see anything relevant.

Any ideas?

@addaleax addaleax added the tls Issues and PRs related to the tls subsystem. label Aug 11, 2016
@mscdex mscdex added the c++ Issues and PRs that require attention from people who are familiar with C++. label Aug 12, 2016
@mscdex
Copy link
Contributor

mscdex commented Aug 12, 2016

Do you have a minimal example that reproduces it?

@msakrejda
Copy link
Author

No, unfortunately I have not been able to minimize this.

I noticed the TLS tag: the application does use TLS with Postgres and for external http requests via axios. For incoming requests, though, TLS termination happens outside of the node process.

@mscdex
Copy link
Contributor

mscdex commented Aug 12, 2016

/cc @indutny

@addaleax
Copy link
Member

Yeah, the segfault occurs in the second part of this line, meaning that stream_ is invalid for some reason.

@mscdex
Copy link
Contributor

mscdex commented Aug 12, 2016

@uhoh-itsmaciek Have you tried with different node versions (e.g. v6.0.0, v5.x, v4.x) to find when this problem started?

@msakrejda
Copy link
Author

I'll try these out and report back.

@msakrejda
Copy link
Author

It appears that on 5.12, we don't get the axios 401s (from another service we run) that trigger this problem in the first place. I had not yet investigated why these 401s were happening and thought that they were legitimate, but maybe we're somehow corrupting the credentials we send with these requests in node 6?

@msakrejda
Copy link
Author

Ok, on 5.12 if I force an error response from axios by intentionally sending the wrong credentials, I still get a segfault with a very similar trace, although it seems to consistently be for address 0x0 (which was not the case with 6):

PID 18 received SIGSEGV for address: 0x0
/app/node_modules/segfault-handler/build/Release/segfault-handler.node(+0x1b04)[0x7f659c349b04]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x10330)[0x7f65a1f52330]
node(_ZN4node7TLSWrap7IsAliveEv+0x16)[0xe800f6]
node(_ZN4node10StreamBase5GetFDINS_7TLSWrapEEEvN2v85LocalINS3_6StringEEERKNS3_20PropertyCallbackInfoINS3_5ValueEEE+0x4c)[0xe84a6c]
node(_ZN2v88internal25PropertyCallbackArguments4CallEPFvNS_5LocalINS_4NameEEERKNS_20PropertyCallbackInfoINS_5ValueEEEES4_+0x80)[0x9153b0]
node(_ZN2v88internal6Object23GetPropertyWithAccessorEPNS0_14LookupIteratorENS0_12LanguageModeE+0x1cd)[0xc04f0d]
node(_ZN2v88internal6Object11GetPropertyEPNS0_14LookupIteratorENS0_12LanguageModeE+0x9e)[0xc0d68e]
node(_ZN2v88internal6LoadIC4LoadENS0_6HandleINS0_6ObjectEEENS2_INS0_4NameEEE+0x17d)[0xbba51d]
node[0xbbb0a8]
node(_ZN2v88internal24Runtime_KeyedLoadIC_MissEiPPNS0_6ObjectEPNS0_7IsolateE+0xd5)[0xbbbcc5]
[0x1908e700839b]

@msakrejda
Copy link
Author

On 4.4.7, the asset precompilation fails for my app, so I can't easily check that. On 6.0.0, I get the segfault.

@msakrejda
Copy link
Author

A colleague suggested that this seems similar to an issue fixed recently in Postgres--we looked at the node code you linked briefly @addaleax and it's not obviously the same issue, but perhaps it's related? In both cases, two independent clients are managing their own TLS connections in the same process, and at least in the Postgres case, the OpenSSL API made it difficult to do this safely.

@addaleax
Copy link
Member

@uhoh-itsmaciek Yeah, I mostly linked that code to explain where the label comes from – unfortunately, I can’t tell from the stack trace itself or the code that it points to why the stream_ field contains invalid data.

Something you can try (if that’s possible) is running your app with valgrind. It’s going to be terribly slow but it’s the best idea I have for now.

@msakrejda
Copy link
Author

I'll see if I can set that up--it might be tricky to do on Heroku (and I have not been able to reproduce locally).

In the meantime, I noticed that the endpoint I call with axios does not actually respond with 401s: according to the heroku router logs, my endpoint responds with 301s, but somehow axios sees a 401 response. I'm guessing this is related to the memory corruption, but I suppose it doesn't really tell us much.

@indutny
Copy link
Member

indutny commented Aug 13, 2016

@uhoh-itsmaciek may I ask you to update a core dump of this crash? It can be inspected with llnode later on, and we should be able to find much more info from there!

@msakrejda
Copy link
Author

Unfortunately, I can't get a core dump on Heroku--it's a limitation of the platform. I'll see if I can reproduce this locally using the Cedar-14 Docker image. I did get Valgrind building and running on Heroku, but I think reproducing this locally is worth trying first.

@msakrejda
Copy link
Author

msakrejda commented Aug 15, 2016

So haven't gotten it running locally, but in the meantime, I tried turning off TLS on our Postgres connection, so we would be left with only a single user of TLS in the process (axios), but I was still able to reproduce.

@msakrejda
Copy link
Author

I've got the app running locally in a container using the heroku/cedar image, but I still can't seem to reproduce the segfault locally, so I don't think I can get a core dump. Is valgrind output still going to be useful? I can go back to work on that if it will help but don't want to spend time on it if you're unlikely to be able to find much without a core dump.

@addaleax
Copy link
Member

Is valgrind output still going to be useful?

Maybe… it’s hard to tell without actually seeing it (although I guess the same goes for a core dump, too). I can say that valgrind is the first tool I run to when seeing something nondeterministic, and usually the only price it has is that it can take a lot of CPU time.

@msakrejda
Copy link
Author

Alright, thanks. I'm working on some other things concurrently so it may be a few days, but I'll give it a shot.

@msakrejda
Copy link
Author

In the meantime, a colleague told me that 6.4.0 has been released so I tried that, and I can still reproduce the segfault. That's what I expected, but just wanted to note that as another data point.

@msakrejda
Copy link
Author

Ok, this is the valgrind output on heroku during the steps that reproduce the crash:

2016-08-25T19:07:39.252737+00:00 app[web.1]: ==6== Invalid read of size 8
2016-08-25T19:07:39.268119+00:00 app[web.1]: ==6==    at 0x102BB93: node::TLSWrap::IsAlive() (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268145+00:00 app[web.1]: ==6==    by 0x10307A1: void node::StreamBase::GetFD<node::TLSWrap>(v8::Local<v8::String>, v8::PropertyCallbackInfo<v8::Value> const&) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268170+00:00 app[web.1]: ==6==    by 0x986911: v8::internal::PropertyCallbackArguments::Call(void (*)(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&), v8::Local<v8::Name>) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268173+00:00 app[web.1]: ==6==    by 0xD1B9DC: v8::internal::Object::GetPropertyWithAccessor(v8::internal::LookupIterator*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268196+00:00 app[web.1]: ==6==    by 0xD56B4A: v8::internal::Object::GetProperty(v8::internal::LookupIterator*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268218+00:00 app[web.1]: ==6==    by 0xCC0F64: v8::internal::LoadIC::Load(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268221+00:00 app[web.1]: ==6==    by 0xCC1D7B: v8::internal::KeyedLoadIC::Load(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) [clone .constprop.229] (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268247+00:00 app[web.1]: ==6==    by 0xCC4C91: v8::internal::Runtime_KeyedLoadIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268251+00:00 app[web.1]: ==6==    by 0x33C645A0961A: ???
2016-08-25T19:07:39.268259+00:00 app[web.1]: ==6==    by 0x33C645B69453: ???
2016-08-25T19:07:39.268261+00:00 app[web.1]: ==6==    by 0x33C646313D65: ???
2016-08-25T19:07:39.268263+00:00 app[web.1]: ==6==    by 0x33C645B69A92: ???
2016-08-25T19:07:39.268269+00:00 app[web.1]: ==6==  Address 0xa604d38 is 72 bytes inside a block of size 392 free'd
2016-08-25T19:07:39.268315+00:00 app[web.1]: ==6==    at 0x4C2C171: operator delete(void*) (vg_replace_malloc.c:575)
2016-08-25T19:07:39.268317+00:00 app[web.1]: ==6==    by 0xB27E6C: v8::internal::Compiler::GetLazyCode(v8::internal::Handle<v8::internal::JSFunction>) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268318+00:00 app[web.1]: ==6==    by 0xE22877: v8::internal::Runtime_CompileLazy(int, v8::internal::Object**, v8::internal::Isolate*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268319+00:00 app[web.1]: ==6==    by 0x33C645A0961A: ???
2016-08-25T19:07:39.268322+00:00 app[web.1]: ==6==    by 0x33C645A31ED8: ???
2016-08-25T19:07:39.268323+00:00 app[web.1]: ==6==    by 0x33C646311F0C: ???
2016-08-25T19:07:39.268323+00:00 app[web.1]: ==6==    by 0x33C646311E13: ???
2016-08-25T19:07:39.268324+00:00 app[web.1]: ==6==    by 0x33C646311BB2: ???
2016-08-25T19:07:39.268324+00:00 app[web.1]: ==6==    by 0x33C645A0D156: ???
2016-08-25T19:07:39.268326+00:00 app[web.1]: ==6==    by 0x33C646311A3A: ???
2016-08-25T19:07:39.268327+00:00 app[web.1]: ==6==    by 0x33C6462DCCBB: ???
2016-08-25T19:07:39.268328+00:00 app[web.1]: ==6==    by 0x33C645A0D156: ???
2016-08-25T19:07:39.268330+00:00 app[web.1]: ==6==  Block was alloc'd at
2016-08-25T19:07:39.268350+00:00 app[web.1]: ==6==    at 0x4C2B145: operator new(unsigned long) (vg_replace_malloc.c:333)
2016-08-25T19:07:39.268371+00:00 app[web.1]: ==6==    by 0xD7981A: v8::internal::Parser::Parser(v8::internal::ParseInfo*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268374+00:00 app[web.1]: ==6==    by 0xDA5EF2: v8::internal::Parser::ParseStatic(v8::internal::ParseInfo*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268399+00:00 app[web.1]: ==6==    by 0xB1FF2B: v8::internal::GetUnoptimizedCodeCommon(v8::internal::CompilationInfo*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268403+00:00 app[web.1]: ==6==    by 0xB27F4F: v8::internal::Compiler::GetLazyCode(v8::internal::Handle<v8::internal::JSFunction>) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268404+00:00 app[web.1]: ==6==    by 0xE22877: v8::internal::Runtime_CompileLazy(int, v8::internal::Object**, v8::internal::Isolate*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.268406+00:00 app[web.1]: ==6==    by 0x33C645A0961A: ???
2016-08-25T19:07:39.268407+00:00 app[web.1]: ==6==    by 0x33C645A31ED8: ???
2016-08-25T19:07:39.268409+00:00 app[web.1]: ==6==    by 0x33C646311F0C: ???
2016-08-25T19:07:39.268424+00:00 app[web.1]: ==6==    by 0x33C646311E13: ???
2016-08-25T19:07:39.268426+00:00 app[web.1]: ==6==    by 0x33C646311BB2: ???
2016-08-25T19:07:39.268426+00:00 app[web.1]: ==6==    by 0x33C645A0D156: ???
2016-08-25T19:07:39.268429+00:00 app[web.1]: ==6== 
2016-08-25T19:07:39.270341+00:00 app[web.1]: ==6== Jump to the invalid address stated on the next line
2016-08-25T19:07:39.270343+00:00 app[web.1]: ==6==    at 0x0: ???
2016-08-25T19:07:39.270348+00:00 app[web.1]: ==6==    by 0x986911: v8::internal::PropertyCallbackArguments::Call(void (*)(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&), v8::Local<v8::Name>) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.270365+00:00 app[web.1]: ==6==    by 0xD1B9DC: v8::internal::Object::GetPropertyWithAccessor(v8::internal::LookupIterator*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.270369+00:00 app[web.1]: ==6==    by 0xD56B4A: v8::internal::Object::GetProperty(v8::internal::LookupIterator*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.270388+00:00 app[web.1]: ==6==    by 0xCC0F64: v8::internal::LoadIC::Load(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.270407+00:00 app[web.1]: ==6==    by 0xCC1D7B: v8::internal::KeyedLoadIC::Load(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) [clone .constprop.229] (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.270671+00:00 app[web.1]: ==6==    by 0xCC4C91: v8::internal::Runtime_KeyedLoadIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*) (in /app/.heroku/node/bin/node)
2016-08-25T19:07:39.270672+00:00 app[web.1]: ==6==    by 0x33C645A0961A: ???
2016-08-25T19:07:39.270675+00:00 app[web.1]: ==6==    by 0x33C645B69453: ???
2016-08-25T19:07:39.270676+00:00 app[web.1]: ==6==    by 0x33C646313D65: ???
2016-08-25T19:07:39.270676+00:00 app[web.1]: ==6==    by 0x33C645B69A92: ???
2016-08-25T19:07:39.270677+00:00 app[web.1]: ==6==    by 0x33C646313D65: ???
2016-08-25T19:07:39.270679+00:00 app[web.1]: ==6==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
2016-08-25T19:07:39.270680+00:00 app[web.1]: ==6== 
2016-08-25T19:07:39.278520+00:00 app[web.1]: PID 6 received SIGSEGV for address: 0x0
2016-08-25T19:07:39.329234+00:00 app[web.1]: /app/node_modules/segfault-handler/build/Release/segfault-handler.node(+0x1b04)[0xb84bb04]
2016-08-25T19:07:39.329269+00:00 app[web.1]: /lib/x86_64-linux-gnu/libpthread.so.0(+0x10330)[0x5a73330]
2016-08-25T19:07:39.423259+00:00 app[web.1]: ==6== 
2016-08-25T19:07:39.424367+00:00 app[web.1]: ==6== HEAP SUMMARY:
2016-08-25T19:07:39.424369+00:00 app[web.1]: ==6==     in use at exit: 3,499,209 bytes in 24,439 blocks
2016-08-25T19:07:39.424370+00:00 app[web.1]: ==6==   total heap usage: 502,650 allocs, 478,211 frees, 902,932,422 bytes allocated
2016-08-25T19:07:39.424370+00:00 app[web.1]: ==6== 
2016-08-25T19:07:40.536132+00:00 app[web.1]: ==6== LEAK SUMMARY:
2016-08-25T19:07:40.538418+00:00 app[web.1]: ==6==    definitely lost: 0 bytes in 0 blocks
2016-08-25T19:07:40.538432+00:00 app[web.1]: ==6==    indirectly lost: 0 bytes in 0 blocks
2016-08-25T19:07:40.538445+00:00 app[web.1]: ==6==      possibly lost: 1,664 bytes in 11 blocks
2016-08-25T19:07:40.538456+00:00 app[web.1]: ==6==    still reachable: 3,497,545 bytes in 24,428 blocks
2016-08-25T19:07:40.538467+00:00 app[web.1]: ==6==                       of which reachable via heuristic:
2016-08-25T19:07:40.538480+00:00 app[web.1]: ==6==                         newarray           : 11,312 bytes in 10 blocks
2016-08-25T19:07:40.538585+00:00 app[web.1]: ==6==         suppressed: 0 bytes in 0 blocks
2016-08-25T19:07:40.538597+00:00 app[web.1]: ==6== Rerun with --leak-check=full to see details of leaked memory
2016-08-25T19:07:40.538608+00:00 app[web.1]: ==6== 
2016-08-25T19:07:40.538641+00:00 app[web.1]: ==6== For counts of detected and suppressed errors, rerun with: -v
2016-08-25T19:07:40.541213+00:00 app[web.1]: ==6== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 1 from 1)

This is under node 6.4.0

For what it's worth, this is the only other output from valgrind in this session, right at node startup:

2016-08-25T19:00:34.675244+00:00 app[web.1]: ==6== Memcheck, a memory error detector
2016-08-25T19:00:34.675302+00:00 app[web.1]: ==6== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
2016-08-25T19:00:34.675308+00:00 app[web.1]: ==6== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
2016-08-25T19:00:34.675308+00:00 app[web.1]: ==6== Command: node static/server.js
2016-08-25T19:00:34.675309+00:00 app[web.1]: ==6== 
2016-08-25T19:00:37.402473+00:00 app[web.1]: ==6== Warning: set address range perms: large range [0x33c64567a000, 0x33c66567a000) (noaccess)

Does this help? It looks like some symbols are still missing--is that from openssl? Do you need that info? Are there debug symbols from openssl I can install to get more info there?

@msakrejda
Copy link
Author

Just wanted to follow up: is there any additional info on this I can provide to help diagnose this issue?

@addaleax
Copy link
Member

@uhoh-itsmaciek Sorry… the valgrind output only seems to confirm that there is some kind of memory corruption, and if as you indicated these are the first lines with actual output, then even valgrind is pretty vague here.

If I were in your position I’d probably start cluttering Node’s source code with fprintf()s to see if anything comes around…

@msakrejda
Copy link
Author

I can run with an instrumented build of node, but I've never seriously worked with a large C++ project, and it's been years since I've touched C++ at all. I wouldn't know where to start. I guess we'll try to avoid the segfault and hope someone else stumbles onto this and can help debug further.

@jessetane
Copy link

Also seeing this with node 6.9.2 and 7.2.1 on Linux (Ubuntu 16.04). Using segfault-handler I get the same output as @uhoh-itsmaciek after the crash.

@jessetane
Copy link

Perhaps not exactly the same, but it looks similar:

PID 12738 received SIGSEGV for address: 0x0
/usr/local/lib/proxy/node_modules/segfault-handler/build/Release/segfault-handler.node(+0x1b98)[0x7fcf418f0b98]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x113e0)[0x7fcf43ed13e0]
/usr/local/bin/node(_ZN4node7TLSWrap7IsAliveEv+0x16)[0x110e496]
/usr/local/bin/node(_ZN4node10StreamBase8JSMethodINS_7TLSWrapEXadL_ZNS0_8ShutdownERKN2v820FunctionCallbackInfoINS3_5ValueEEEEEEEvS8_+0x77)[0x1112817]
/usr/local/bin/node(_ZN2v88internal25FunctionCallbackArguments4CallEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEE+0x122)[0x988f72]
/usr/local/bin/node[0x9e6f22]
/usr/local/bin/node[0x9e759e]

@jessetane
Copy link

For what it's worth it seems to happen when a client terminates a connection, but it's sporadic and I haven't been able to reproduce reliably

@bnoordhuis
Copy link
Member

I've been running stress tests but have so far been unable to reproduce.

@jessetane
Copy link

Still trying to narrow it down, will reply if I can figure out how to reproduce it reliably. In the meantime (not really sure what I'm doing) I've managed to grab a core dump but it's 119mb - is there a good / safe way to share something like that? Here's a preview from when I open it with gdb:

GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/local/bin/node...done.
[New LWP 23031]
[New LWP 23032]
[New LWP 23033]
[New LWP 23034]
[New LWP 23035]
[New LWP 23036]
[New LWP 23037]
[New LWP 23038]
[New LWP 23039]
[New LWP 23040]
Core was generated by `node index.js'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000000000110e49a in bool v8::internal::DataViewSetValue<short>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSDataView>, v8::internal::Handle<v8::internal::Object>, bool, short) [clone .isra.90] ()
[Current thread is 1 (LWP 23031)]
(gdb) bt full
#0  0x000000000110e49a in bool v8::internal::DataViewSetValue<short>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSDataView>, v8::internal::Handle<v8::internal::Object>, bool, short) [clone .isra.90] ()
No symbol table info available.
#1  0x0000000000988f72 in aesni_cbc_hmac_sha1_ctrl ()
No symbol table info available.
#2  0x00000000009e6f22 in UI_construct_prompt ()
No symbol table info available.
#3  0x00000000009e759e in ?? ()
No symbol table info available.
#4  0x00000002117e0000 in ?? ()
No symbol table info available.
#5  0x0000000c00000002 in ?? ()
No symbol table info available.
#6  0x0000000000000000 in ?? ()
No symbol table info available.
(gdb)

@addaleax
Copy link
Member

Yes, I’d assume that it’s resolved now. If somebody runs into this on a recent version of Node.js, we can always open a new issue for that

sam-github added a commit to sam-github/node that referenced this issue Jan 25, 2019
This test has a dependency on the order in which the TCP connection is
made, and TLS server handshake completes. It assumes those server side
events occur before the client side write callback, which is not
guaranteed by the TLS API. It usually passes with TLS1.3, but TLS1.3
didn't exist at the time the bug existed.

Pin the test to TLS1.2, since the test shouldn't be changed in a way that
doesn't trigger a segfault in 7.7.3:
- nodejs#13184 (comment)
sam-github added a commit to sam-github/node that referenced this issue Jan 31, 2019
This test has a dependency on the order in which the TCP connection is
made, and TLS server handshake completes. It assumes those server side
events occur before the client side write callback, which is not
guaranteed by the TLS API. It usually passes with TLS1.3, but TLS1.3
didn't exist at the time the bug existed.

Pin the test to TLS1.2, since the test shouldn't be changed in a way that
doesn't trigger a segfault in 7.7.3:
- nodejs#13184 (comment)
sam-github added a commit to sam-github/node that referenced this issue Feb 5, 2019
This test has a dependency on the order in which the TCP connection is
made, and TLS server handshake completes. It assumes those server side
events occur before the client side write callback, which is not
guaranteed by the TLS API. It usually passes with TLS1.3, but TLS1.3
didn't exist at the time the bug existed.

Pin the test to TLS1.2, since the test shouldn't be changed in a way that
doesn't trigger a segfault in 7.7.3:
- nodejs#13184 (comment)
sam-github added a commit that referenced this issue Feb 6, 2019
This test has a dependency on the order in which the TCP connection is
made, and TLS server handshake completes. It assumes those server side
events occur before the client side write callback, which is not
guaranteed by the TLS API. It usually passes with TLS1.3, but TLS1.3
didn't exist at the time the bug existed.

Pin the test to TLS1.2, since the test shouldn't be changed in a way that
doesn't trigger a segfault in 7.7.3:
- #13184 (comment)

PR-URL: #25508
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
addaleax pushed a commit that referenced this issue Feb 8, 2019
This test has a dependency on the order in which the TCP connection is
made, and TLS server handshake completes. It assumes those server side
events occur before the client side write callback, which is not
guaranteed by the TLS API. It usually passes with TLS1.3, but TLS1.3
didn't exist at the time the bug existed.

Pin the test to TLS1.2, since the test shouldn't be changed in a way that
doesn't trigger a segfault in 7.7.3:
- #13184 (comment)

PR-URL: #25508
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
sam-github added a commit to sam-github/node that referenced this issue Feb 28, 2019
This test has a dependency on the order in which the TCP connection is
made, and TLS server handshake completes. It assumes those server side
events occur before the client side write callback, which is not
guaranteed by the TLS API. It usually passes with TLS1.3, but TLS1.3
didn't exist at the time the bug existed.

Pin the test to TLS1.2, since the test shouldn't be changed in a way that
doesn't trigger a segfault in 7.7.3:
- nodejs#13184 (comment)
sam-github added a commit to sam-github/node that referenced this issue Feb 28, 2019
This test has a dependency on the order in which the TCP connection is
made, and TLS server handshake completes. It assumes those server side
events occur before the client side write callback, which is not
guaranteed by the TLS API. It usually passes with TLS1.3, but TLS1.3
didn't exist at the time the bug existed.

Pin the test to TLS1.2, since the test shouldn't be changed in a way that
doesn't trigger a segfault in 7.7.3:
- nodejs#13184 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Issues and PRs that require attention from people who are familiar with C++. confirmed-bug Issues with confirmed bugs. tls Issues and PRs related to the tls subsystem.
Projects
None yet
Development

Successfully merging a pull request may close this issue.