summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSatya Rohith <me@satyarohith.com>2024-05-02 18:34:42 +0530
committerGitHub <noreply@github.com>2024-05-02 18:34:42 +0530
commit811280af77b5136a2592af7447ac566674309065 (patch)
treef4de410ec9cb3a01336f71c9382ec7e2cb547a43
parent56ba7f3c233fcf8c9478314956c70725179ed16f (diff)
fix(ext/node): check resource exists before close (#23655)
-rw-r--r--ext/node/polyfills/http2.ts18
1 files changed, 12 insertions, 6 deletions
diff --git a/ext/node/polyfills/http2.ts b/ext/node/polyfills/http2.ts
index bc8347469..b9d9f4b06 100644
--- a/ext/node/polyfills/http2.ts
+++ b/ext/node/polyfills/http2.ts
@@ -1015,7 +1015,7 @@ export class ClientHttp2Stream extends Duplex {
this.emit("trailers", trailers);
}
- debugHttp2("tryClose");
+ debugHttp2(">>> tryClose", this[kDenoResponse]?.bodyRid);
core.tryClose(this[kDenoResponse].bodyRid);
this.push(null);
debugHttp2(">>> read null chunk");
@@ -1246,10 +1246,12 @@ function finishCloseStream(stream, code) {
debugHttp2(
">>> finishCloseStream close",
stream[kDenoRid],
- stream[kDenoResponse].bodyRid,
+ stream[kDenoResponse]?.bodyRid,
);
core.tryClose(stream[kDenoRid]);
- core.tryClose(stream[kDenoResponse].bodyRid);
+ if (stream[kDenoResponse]) {
+ core.tryClose(stream[kDenoResponse].bodyRid);
+ }
stream.emit("close");
});
});
@@ -1265,7 +1267,9 @@ function finishCloseStream(stream, code) {
stream[kDenoResponse].bodyRid,
);
core.tryClose(stream[kDenoRid]);
- core.tryClose(stream[kDenoResponse].bodyRid);
+ if (stream[kDenoResponse]) {
+ core.tryClose(stream[kDenoResponse].bodyRid);
+ }
nextTick(() => {
stream.emit("close");
});
@@ -1273,10 +1277,12 @@ function finishCloseStream(stream, code) {
debugHttp2(
">>> finishCloseStream close2 catch",
stream[kDenoRid],
- stream[kDenoResponse].bodyRid,
+ stream[kDenoResponse]?.bodyRid,
);
core.tryClose(stream[kDenoRid]);
- core.tryClose(stream[kDenoResponse].bodyRid);
+ if (stream[kDenoResponse]) {
+ core.tryClose(stream[kDenoResponse].bodyRid);
+ }
nextTick(() => {
stream.emit("close");
});