René's URL Explorer Experiment


Title: Request signal isn't aborted after garbage collection · Issue #55428 · nodejs/node · GitHub

Open Graph Title: Request signal isn't aborted after garbage collection · Issue #55428 · nodejs/node

X Title: Request signal isn't aborted after garbage collection · Issue #55428 · nodejs/node

Description: Bug Description Passing a signal to Request() and aborting it does not cause the underlying request signal to be aborted after it's been garbage collected. This leads to issues where you want to listen on the request signal even after th...

Open Graph Description: Bug Description Passing a signal to Request() and aborting it does not cause the underlying request signal to be aborted after it's been garbage collected. This leads to issues where you want to li...

X Description: Bug Description Passing a signal to Request() and aborting it does not cause the underlying request signal to be aborted after it's been garbage collected. This leads to issues where you want t...

Opengraph URL: https://github.com/nodejs/node/issues/55428

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Request signal isn't aborted after garbage collection","articleBody":"## Bug Description\r\n\r\nPassing a signal to Request() and aborting it does not cause the underlying request signal to be aborted after it's been garbage collected. This leads to issues where you want to listen on the request signal even after the request itself falls out of scope - e.g., the request is instantiated with an abort controller signal and downstream code is waiting for that signal to be aborted via `request.signal`.\r\n\r\n## Reproducible By\r\n\r\nRun the following using `node --expose-gc main.js`:\r\n\r\n```js\r\nconst ac = new AbortController();\r\n\r\nac.signal.addEventListener(\"abort\", () => {\r\n  console.log(\"ac signal aborted\");\r\n});\r\n\r\nconst request = new Request(\"https://google.ca\", { signal: ac.signal });\r\n\r\nrequest.signal.addEventListener(\"abort\", () => {\r\n  console.log(\"request signal aborted\");\r\n});\r\n\r\nsetTimeout(() => {\r\n  global.gc();\r\n  ac.abort();\r\n}, 0);\r\n```\r\n\r\n## Expected Behavior\r\n`ac signal aborted` **and** `request signal aborted` should be logged to the console.\r\n\r\nInstead, only `ac signal aborted` is logged.\r\n\r\n## Environment\r\n\r\nLatest node and undici. Tried it in some older versions as well.\r\n\r\n### Additional context\r\n\r\nA few folks are running into this while trying to close event stream requests in the remix web framework. The underlying requests are never closed because the signal doesn't get aborted.","author":{"url":"https://github.com/jvaill","@type":"Person","name":"jvaill"},"datePublished":"2024-09-25T21:48:01Z","url":"https://github.com/nodejs/node/issues/55428"}

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:978ae3bd-86dd-c064-d56d-4b1d88405f02
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-id9934:3B3F35:D8808B:11C888D:6AED5655
html-safe-nonceff3c644a22d8f1af8d2a783de1733125cada590c13bd42fc1c0001bc03680f7f
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5OTM0OjNCM0YzNTpEODgwOEI6MTFDODg4RDo2QUVENTY1NSIsInZpc2l0b3JfaWQiOiI1OTI2NjMyODA4MTMyNzI4NDA1IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmace059c1f19df8f74844977f037cbe6b0de212ad6ff90471f7192a95386e9de8d9
hovercard-subject-tagissue:2595225840
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/nodejs/node/55428/issue_layout
twitter:imagehttps://opengraph.githubassets.com/3363c040babeef9accc83f34690b0405c1c431dc07e141f936eea7d1e32d3c69/nodejs/node/issues/55428
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/3363c040babeef9accc83f34690b0405c1c431dc07e141f936eea7d1e32d3c69/nodejs/node/issues/55428
og:image:altBug Description Passing a signal to Request() and aborting it does not cause the underlying request signal to be aborted after it's been garbage collected. This leads to issues where you want to li...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamejvaill
hostnamegithub.com
expected-hostnamegithub.com
None56fb42677ae87ed3e64410323d67980aa65d0485568a7858f874e7edfc6d1c11
turbo-cache-controlno-preview
go-importgithub.com/nodejs/node git https://github.com/nodejs/node.git
octolytics-dimension-user_id9950313
octolytics-dimension-user_loginnodejs
octolytics-dimension-repository_id27193779
octolytics-dimension-repository_nwonodejs/node
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id27193779
octolytics-dimension-repository_network_root_nwonodejs/node
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release9c9a37e2423ed382cf39f70b5aa4b4858b40a3b0
ui-targetfull
theme-color#1e2327
color-schemelight dark
react-app-nameissues

Links:

Skip to contenthttps://github.com/nodejs/node/issues/55428#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fissues%2F55428
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fissues%2F55428
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=nodejs%2Fnode
Reloadhttps://github.com/nodejs/node/issues/55428
Reloadhttps://github.com/nodejs/node/issues/55428
Reloadhttps://github.com/nodejs/node/issues/55428
nodejshttps://github.com/nodejs
nodehttps://github.com/nodejs/node
Codehttps://github.com/nodejs/node
Issues654 (654)https://github.com/nodejs/node/issues
Pull requests662 (662)https://github.com/nodejs/node/pulls
Actionshttps://github.com/nodejs/node/actions
Projectshttps://github.com/nodejs/node/projects
Security and qualityhttps://github.com/nodejs/node/security
Insightshttps://github.com/nodejs/node/pulse
https://github.com/nodejs/node
New issuehttps://github.com/login?return_to=https://github.com/nodejs/node/issues/55428
New issuehttps://github.com/login?return_to=https://github.com/nodejs/node/issues/55428
#64415https://github.com/nodejs/node/pull/64415
Request signal isn't aborted after garbage collectionhttps://github.com/nodejs/node/issues/55428#top
#64415https://github.com/nodejs/node/pull/64415
confirmed-bugIssues and PRs for confirmed bugs.https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22confirmed-bug%22
https://github.com/jvaill
jvaillhttps://github.com/jvaill
on Sep 25, 2024https://github.com/nodejs/node/issues/55428#issue-2595225840
https://github.com/ronag
ronaghttps://github.com/ronag
on Sep 26, 2024https://github.com/nodejs/node/issues/55428#issuecomment-2420011787
@KhafraDevhttps://github.com/KhafraDev
https://github.com/ronag
ronaghttps://github.com/ronag
on Sep 26, 2024https://github.com/nodejs/node/issues/55428#issuecomment-2420011795
https://dom.spec.whatwg.org/#abort-signal-garbage-collectionhttps://dom.spec.whatwg.org/#abort-signal-garbage-collection
https://github.com/KhafraDev
KhafraDevhttps://github.com/KhafraDev
on Sep 26, 2024https://github.com/nodejs/node/issues/55428#issuecomment-2420011799
https://github.com/jvaill
jvaillhttps://github.com/jvaill
on Sep 26, 2024https://github.com/nodejs/node/issues/55428#issuecomment-2420011805
@KhafraDevhttps://github.com/KhafraDev
https://github.com/KhafraDev
KhafraDevhttps://github.com/KhafraDev
on Sep 26, 2024https://github.com/nodejs/node/issues/55428#issuecomment-2420011810
nodejs/undici#1113https://github.com/nodejs/undici/pull/1113
source signalshttps://dom.spec.whatwg.org/#abortsignal-source-signals
aborthttps://dom.spec.whatwg.org/#eventdef-abortsignal-abort
abort algorithmshttps://dom.spec.whatwg.org/#abortsignal-abort-algorithms
https://github.com/KhafraDev
KhafraDevhttps://github.com/KhafraDev
on Sep 27, 2024https://github.com/nodejs/node/issues/55428#issuecomment-2420011819
https://github.com/ronag
ronaghttps://github.com/ronag
on Sep 27, 2024https://github.com/nodejs/node/issues/55428#issuecomment-2420011824
@benjamingrhttps://github.com/benjamingr
https://github.com/mcollina
mcollinahttps://github.com/mcollina
on Sep 28, 2024https://github.com/nodejs/node/issues/55428#issuecomment-2420011836
mcollinahttps://github.com/mcollina
nodejs/undicihttps://github.com/nodejs/undici
on Oct 17, 2024https://github.com/nodejs/node/issues/55428#event-14702375513
https://github.com/mcollina
mcollinahttps://github.com/mcollina
on Oct 17, 2024https://github.com/nodejs/node/issues/55428#issuecomment-2420012094
https://github.com/zachrip
zachriphttps://github.com/zachrip
on Dec 20, 2024https://github.com/nodejs/node/issues/55428#issuecomment-2557021589
mcollinahttps://github.com/mcollina
confirmed-bugIssues and PRs for confirmed bugs.https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22confirmed-bug%22
on Jan 14, 2025https://github.com/nodejs/node/issues/55428#event-15920608432
https://github.com/mcollina
mcollinahttps://github.com/mcollina
on Jan 14, 2025https://github.com/nodejs/node/issues/55428#issuecomment-2589494454
@zachriphttps://github.com/zachrip
https://dom.spec.whatwg.org/#abort-signal-garbage-collectionhttps://dom.spec.whatwg.org/#abort-signal-garbage-collection
https://github.com/Tseian
Tseianhttps://github.com/Tseian
on Mar 13, 2026https://github.com/nodejs/node/issues/55428#issuecomment-4053177924
@KhafraDevhttps://github.com/KhafraDev
https://github.com/SudhansuBandha
SudhansuBandhahttps://github.com/SudhansuBandha
on Apr 6, 2026https://github.com/nodejs/node/issues/55428#issuecomment-4190583203
node/deps/undici/src/lib/web/fetch/request.jshttps://github.com/nodejs/node/blob/e7759896bc2d4ad5f91d184bf62f30c7302ba910/deps/undici/src/lib/web/fetch/request.js#L431
e775989https://github.com/nodejs/node/commit/e7759896bc2d4ad5f91d184bf62f30c7302ba910
@mcollinahttps://github.com/mcollina
@KhafraDevhttps://github.com/KhafraDev
@ronaghttps://github.com/ronag
ericallamhttps://github.com/ericallam
on Apr 16, 2026https://github.com/nodejs/node/issues/55428#event-24567586895
fix(webapp): fix Redis connection leak in realtime streams and broken…https://github.com/triggerdotdev/trigger.dev/commit/1aa6373eebf73fc2f62e918b2b6d3a3a5e230a48
1aa6373https://github.com/triggerdotdev/trigger.dev/commit/1aa6373eebf73fc2f62e918b2b6d3a3a5e230a48
fix(webapp): fix Redis connection leak in realtime streams and broken…https://github.com/triggerdotdev/trigger.dev/commit/566a42e1526b5c5011224de9f394fc4303c4ce43
566a42ehttps://github.com/triggerdotdev/trigger.dev/commit/566a42e1526b5c5011224de9f394fc4303c4ce43
fix(webapp): fix Redis connection leak in realtime streams and broken…https://github.com/triggerdotdev/trigger.dev/commit/e95e5b0e7b67e961407119c074d16d2d424072c3
e95e5b0https://github.com/triggerdotdev/trigger.dev/commit/e95e5b0e7b67e961407119c074d16d2d424072c3
fix(webapp): fix Redis connection leak in realtime streams and broken…https://github.com/triggerdotdev/trigger.dev/commit/02d2334c8aa67e7d09f7a5ec14620e3a67dca589
02d2334https://github.com/triggerdotdev/trigger.dev/commit/02d2334c8aa67e7d09f7a5ec14620e3a67dca589
ericallamhttps://github.com/ericallam
on Apr 24, 2026https://github.com/nodejs/node/issues/55428#event-24839764849
fix(webapp): use getRequestAbortSignal() for dashboard stream routeshttps://github.com/triggerdotdev/trigger.dev/commit/aa2ae56711e0f6a410f7d669708645bdb8017c96
aa2ae56https://github.com/triggerdotdev/trigger.dev/commit/aa2ae56711e0f6a410f7d669708645bdb8017c96
fix(webapp): use getRequestAbortSignal() for dashboard stream routeshttps://github.com/triggerdotdev/trigger.dev/commit/7a4722ad4dcabec521fd1454b15b0d2e507ca175
7a4722ahttps://github.com/triggerdotdev/trigger.dev/commit/7a4722ad4dcabec521fd1454b15b0d2e507ca175
fix(webapp): use getRequestAbortSignal() for dashboard stream routeshttps://github.com/triggerdotdev/trigger.dev/commit/cc791b58b9a69398e21308ecf0fcb45af04c6082
cc791b5https://github.com/triggerdotdev/trigger.dev/commit/cc791b58b9a69398e21308ecf0fcb45af04c6082
fix(webapp): use getRequestAbortSignal() for dashboard stream routeshttps://github.com/triggerdotdev/trigger.dev/commit/1d01ee83c6b7489f36ef2471f0086712e8c57d67
1d01ee8https://github.com/triggerdotdev/trigger.dev/commit/1d01ee83c6b7489f36ef2471f0086712e8c57d67
chore: release v4.4.5 (#3406)https://github.com/triggerdotdev/trigger.dev/commit/d825427cbc428a5cfb8f7c8ee4832a59677165fa
#3406https://github.com/triggerdotdev/trigger.dev/pull/3406
d825427https://github.com/triggerdotdev/trigger.dev/commit/d825427cbc428a5cfb8f7c8ee4832a59677165fa
fix(webapp): use getRequestAbortSignal() for dashboard stream routeshttps://github.com/triggerdotdev/trigger.dev/commit/517d7b03d75c024a1adc7edd1f935172c4c6bf5d
517d7b0https://github.com/triggerdotdev/trigger.dev/commit/517d7b03d75c024a1adc7edd1f935172c4c6bf5d
fix(webapp): use getRequestAbortSignal() for dashboard stream routeshttps://github.com/triggerdotdev/trigger.dev/commit/186f04fff8e842e0ddc43479f9f9df35f9ab9cdb
186f04fhttps://github.com/triggerdotdev/trigger.dev/commit/186f04fff8e842e0ddc43479f9f9df35f9ab9cdb
fix(webapp): use getRequestAbortSignal() for dashboard stream routeshttps://github.com/triggerdotdev/trigger.dev/commit/3f62880da4c1166e38542d90da60b4f7b01ebd97
3f62880https://github.com/triggerdotdev/trigger.dev/commit/3f62880da4c1166e38542d90da60b4f7b01ebd97
aliasunderhttps://github.com/aliasunder
on Aug 18, 2026https://github.com/nodejs/node/issues/55428#event-29650190255
fix: replace SDK AbortSignal.timeout with application-level AbortCont…https://github.com/aliasunder/umm-actually/commit/ef7b97e4f76b4e6fe9951b3a1d4dcec1a1bf2512
ef7b97ehttps://github.com/aliasunder/umm-actually/commit/ef7b97e4f76b4e6fe9951b3a1d4dcec1a1bf2512
chore: bump umm-actually to v0.3.9 (#453)https://github.com/aliasunder/vault-cortex/commit/7c010f66061ef8ecd326ad309f4c4d5d79346b28
#453https://github.com/aliasunder/vault-cortex/pull/453
7c010f6https://github.com/aliasunder/vault-cortex/commit/7c010f66061ef8ecd326ad309f4c4d5d79346b28
chore: bump umm-actually to v0.3.9 (#11)https://github.com/aliasunder/vault-onboarding/commit/42f942e49b760cc478408922e0117733185bad72
#11https://github.com/aliasunder/vault-onboarding/pull/11
42f942ehttps://github.com/aliasunder/vault-onboarding/commit/42f942e49b760cc478408922e0117733185bad72
Sign up for freehttps://github.com/signup?return_to=https://github.com/nodejs/node/issues/55428
Sign in to commenthttps://github.com/login?return_to=https://github.com/nodejs/node/issues/55428
confirmed-bugIssues and PRs for confirmed bugs.https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22confirmed-bug%22
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.