Closed
Description
- Version: v8.12.0
- Platform: OSX, Darwin mymac.local 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64
- Subsystem: http2
When performing something along the lines of:
const http2Session = ...;
const outHeaders = { ... };
const req = http2Session.request({ ...outHeaders, [HTTP2_HEADER_PATH]: path });
const body: Buffer[] = [];
let headers: IncomingHttpHeaders = {};
req
.on("response", (hs) => headers = hs)
.on("data", (chunk) => body.push(chunk))
.on("error", (error) => reject(error))
.on("end", () => resolve({
headers,
status: parseInt(headers[HTTP2_HEADER_STATUS], 10),
body: Buffer.concat(body),
}));
req.end(Buffer.from("MYDATA"));
and the NGINX server becomes unavailable (shutsdown, GOAWAY, sessions close) sometimes we get the following error:
node[25931]: ../src/tls_wrap.cc:604:virtual int node::TLSWrap::DoWrite(node::WriteWrap *, uv_buf_t *, size_t, uv_stream_t *): Assertion `(ssl_) != (nullptr)' failed.
1: node::Abort() [/Users/hbanken/.nvm/versions/node/v8.12.0/bin/node]
2: node::(anonymous namespace)::DomainEnter(node::Environment*, v8::Local<v8::Object>) [/Users/hbanken/.nvm/versions/node/v8.12.0/bin/node]
3: node::TLSWrap::DoWrite(node::WriteWrap*, uv_buf_t*, unsigned long, uv_stream_s*) [/Users/hbanken/.nvm/versions/node/v8.12.0/bin/node]
4: node::http2::Http2Session::SendPendingData() [/Users/hbanken/.nvm/versions/node/v8.12.0/bin/node]
5: node::http2::Http2Stream::RstStream(v8::FunctionCallbackInfo<v8::Value> const&) [/Users/hbanken/.nvm/versions/node/v8.12.0/bin/node]
6: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) [/Users/hbanken/.nvm/versions/node/v8.12.0/bin/node]
7: v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/Users/hbanken/.nvm/versions/node/v8.12.0/bin/node]
8: v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/Users/hbanken/.nvm/versions/node/v8.12.0/bin/node]
9: 0x3671961042fd
10: 0x3671961bd1d6
Expected behavior:
Native error is caught and converted in something NodeJS can handle instead of crashing the whole process.