diff --git a/src/node_http2.cc b/src/node_http2.cc index f2a4d83a3b7661..63e0fd3975cfe9 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -1124,17 +1124,6 @@ int Http2Session::OnStreamClose(nghttp2_session* handle, if (!stream || stream->is_destroyed()) return 0; - // Don't close synchronously in case there's pending data to be written. This - // may happen when writing trailing headers. - if (code == NGHTTP2_NO_ERROR && nghttp2_session_want_write(handle) && - env->can_call_into_js()) { - env->SetImmediate([handle, id, code, user_data](Environment* env) { - OnStreamClose(handle, id, code, user_data); - }); - - return 0; - } - stream->Close(code); // It is possible for the stream close to occur before the stream is diff --git a/test/parallel/test-http2-trailers-after-session-close.js b/test/known_issues/test-http2-trailers-after-session-close.js similarity index 81% rename from test/parallel/test-http2-trailers-after-session-close.js rename to test/known_issues/test-http2-trailers-after-session-close.js index d08f875494139c..3d5be11e5b5185 100644 --- a/test/parallel/test-http2-trailers-after-session-close.js +++ b/test/known_issues/test-http2-trailers-after-session-close.js @@ -1,8 +1,13 @@ 'use strict'; +// Fixes: https://github.com/nodejs/node/issues/42713 const common = require('../common'); -if (!common.hasCrypto) +if (!common.hasCrypto) { + // Remove require('assert').fail when issue is fixed and test + // is moved out of the known_issues directory. + require('assert').fail('missing crypto'); common.skip('missing crypto'); +} const assert = require('assert'); const http2 = require('http2'); @@ -31,7 +36,7 @@ server.listen(0, common.mustCall(() => { client.socket.on('close', common.mustCall()); const req = client.request({ [HTTP2_HEADER_PATH]: '/', - [HTTP2_HEADER_METHOD]: 'POST' + [HTTP2_HEADER_METHOD]: 'POST', }); req.end(); req.on('response', common.mustCall());