From 7d0b77440e635a666ed1c333df1217dd5fa043c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 16 Mar 2020 15:32:29 +0100 Subject: [PATCH] fix: fetch closes unused body (#4393) This commit makes sure that "httpBody" resource is closed in case of redirections in fetch API. --- cli/js/tests/fetch_test.ts | 8 -------- cli/js/web/fetch.ts | 3 +++ 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/cli/js/tests/fetch_test.ts b/cli/js/tests/fetch_test.ts index dd988267e3..1467095830 100644 --- a/cli/js/tests/fetch_test.ts +++ b/cli/js/tests/fetch_test.ts @@ -174,8 +174,6 @@ unitTest( unitTest( { - // TODO(bartlomieju): leaking resources - skip: true, perms: { net: true } }, async function fetchWithRedirection(): Promise { @@ -190,8 +188,6 @@ unitTest( unitTest( { - // TODO: leaking resources - skip: true, perms: { net: true } }, async function fetchWithRelativeRedirection(): Promise { @@ -451,8 +447,6 @@ unitTest( unitTest( { - // TODO: leaking resources - skip: true, perms: { net: true } }, async function fetchWithManualRedirection(): Promise { @@ -476,8 +470,6 @@ unitTest( unitTest( { - // TODO: leaking resources - skip: true, perms: { net: true } }, async function fetchWithErrorRedirection(): Promise { diff --git a/cli/js/web/fetch.ts b/cli/js/web/fetch.ts index c7209943fc..acf0bad0f1 100644 --- a/cli/js/web/fetch.ts +++ b/cli/js/web/fetch.ts @@ -531,6 +531,9 @@ export async function fetch( redirected ); if ([301, 302, 303, 307, 308].includes(response.status)) { + // We won't use body of received response, so close it now + // otherwise it will be kept in resource table. + close(fetchResponse.bodyRid); // We're in a redirect status switch ((init && init.redirect) || "follow") { case "error":