René's URL Explorer Experiment


Title: Stream not destroyed when piped in Duplex.from() writable · Issue #55077 · nodejs/node · GitHub

Open Graph Title: Stream not destroyed when piped in Duplex.from() writable · Issue #55077 · nodejs/node

X Title: Stream not destroyed when piped in Duplex.from() writable · Issue #55077 · nodejs/node

Description: Version v22.9.0 Platform Darwin MBPM.local 24.0.0 Darwin Kernel Version 24.0.0: Mon Aug 12 20:52:31 PDT 2024; root:xnu-11215.1.10~2/RELEASE_ARM64_T6030 arm64 Subsystem stream What steps will reproduce the bug? const { Duplex, Readable, p...

Open Graph Description: Version v22.9.0 Platform Darwin MBPM.local 24.0.0 Darwin Kernel Version 24.0.0: Mon Aug 12 20:52:31 PDT 2024; root:xnu-11215.1.10~2/RELEASE_ARM64_T6030 arm64 Subsystem stream What steps will reprod...

X Description: Version v22.9.0 Platform Darwin MBPM.local 24.0.0 Darwin Kernel Version 24.0.0: Mon Aug 12 20:52:31 PDT 2024; root:xnu-11215.1.10~2/RELEASE_ARM64_T6030 arm64 Subsystem stream What steps will reprod...

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

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Stream not destroyed when piped in Duplex.from() writable","articleBody":"### Version\n\nv22.9.0\n\n### Platform\n\n```text\nDarwin MBPM.local 24.0.0 Darwin Kernel Version 24.0.0: Mon Aug 12 20:52:31 PDT 2024; root:xnu-11215.1.10~2/RELEASE_ARM64_T6030 arm64\n```\n\n\n### Subsystem\n\nstream\n\n### What steps will reproduce the bug?\n\n```js\r\nconst { Duplex, Readable, pipeline } = require('node:stream')\r\n\r\npipeline(\r\n  Readable.from(\r\n    (async function* () {\r\n      try {\r\n        console.log('Readable stream started')\r\n        let i = 32\r\n        while (i-- > 0) {\r\n          yield Buffer.from('Hello, world!')\r\n          console.log('Readable stream resumed')\r\n        }\r\n        console.log('Readable stream ended')\r\n      } catch (err) {\r\n        console.log('Readable stream errored', err)\r\n      } finally {\r\n        console.log('Readable stream destroyed')\r\n      }\r\n    })(),\r\n    { objectMode: false, autoDestroy: true, highWaterMark: 1 }\r\n  ),\r\n  Duplex.from(async function (asyncGenerator) {\r\n    asyncGenerator.return()\r\n  }),\r\n  (err) => {\r\n    if (err) {\r\n      console.error('Pipeline failed', err)\r\n    } else {\r\n      console.log('Pipeline succeeded')\r\n    }\r\n  }\r\n)\r\n```\n\n### How often does it reproduce? Is there a required condition?\n\nAny code used as `Duplex.from(async function () {})` that does not fully consume the input will prevent the input stream to be properly disposed:\r\n\r\n```js\r\n  Duplex.from(async function (asyncGenerator) {\r\n    for await (const chunk of asyncGenerator) {\r\n      console.log('Writable stream received', chunk)\r\n      break\r\n    }\r\n  })\r\n```\r\n\r\n```js\r\n  Duplex.from(async function (asyncGenerator) {\r\n    asyncGenerator.retrun()\r\n  })\r\n```\r\n\r\n```js\r\n  Duplex.from(async function (asyncGenerator) {\r\n    // do nothing\r\n  })\r\n```\r\n\r\n\n\n### What is the expected behavior? Why is that the expected behavior?\n\nThe readable's destroy steps should be called.\n\n### What do you see instead?\n\nThe readable is not destroyed.\n\n### Additional information\n\n_No response_","author":{"url":"https://github.com/matthieusieben","@type":"Person","name":"matthieusieben"},"datePublished":"2024-09-23T09:39:29Z","url":"https://github.com/nodejs/node/issues/55077"}

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:d8d6e089-1dd3-ba45-fdc5-164de1d6823a
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idBDFA:1F55:171FB:739F9:6AED3543
html-safe-nonce2d0a23eb8838794095418f8e97f4964a2d5df4946b9f15023c44b2bcb83328e2
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCREZBOjFGNTU6MTcxRkI6NzM5Rjk6NkFFRDM1NDMiLCJ2aXNpdG9yX2lkIjoiMjE0NTk2MjI4NjQ3ODM0MTQ0MyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac53cab0cd9935e95564fefa83c65874f0f26e6ba8da05eb161aa9c1df2ecfbd3d
hovercard-subject-tagissue:2542092106
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/55077/issue_layout
twitter:imagehttps://opengraph.githubassets.com/8f2ef7a746403d44e2cd15bacfed98f520694266f6542ae145a7a672900ae649/nodejs/node/issues/55077
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/8f2ef7a746403d44e2cd15bacfed98f520694266f6542ae145a7a672900ae649/nodejs/node/issues/55077
og:image:altVersion v22.9.0 Platform Darwin MBPM.local 24.0.0 Darwin Kernel Version 24.0.0: Mon Aug 12 20:52:31 PDT 2024; root:xnu-11215.1.10~2/RELEASE_ARM64_T6030 arm64 Subsystem stream What steps will reprod...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamematthieusieben
hostnamegithub.com
expected-hostnamegithub.com
None26c92a9388ddfad3fa88d132b5d5f0b4747030233dcc4e5efb05f1cbae152184
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
releasec629ad99c254d306375fc8354d04321c2c362236
ui-targetfull
theme-color#1e2327
color-schemelight dark
react-app-nameissues

Links:

Skip to contenthttps://github.com/nodejs/node/issues/55077#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fissues%2F55077
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%2F55077
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/55077
Reloadhttps://github.com/nodejs/node/issues/55077
Reloadhttps://github.com/nodejs/node/issues/55077
nodejshttps://github.com/nodejs
nodehttps://github.com/nodejs/node
Codehttps://github.com/nodejs/node
Issues656 (656)https://github.com/nodejs/node/issues
Pull requests665 (665)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/55077
New issuehttps://github.com/login?return_to=https://github.com/nodejs/node/issues/55077
#65963https://github.com/nodejs/node/pull/65963
Stream not destroyed when piped in Duplex.from() writablehttps://github.com/nodejs/node/issues/55077#top
#65963https://github.com/nodejs/node/pull/65963
confirmed-bugIssues and PRs for confirmed bugs.https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22confirmed-bug%22
streamIssues and PRs related to Node.js streams.https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22stream%22
https://github.com/matthieusieben
matthieusiebenhttps://github.com/matthieusieben
on Sep 23, 2024https://github.com/nodejs/node/issues/55077#issue-2542092106
avivkellerhttps://github.com/avivkeller
streamIssues and PRs related to Node.js streams.https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22stream%22
web streamsIssues and PRs related to the Web Streams API.https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22web%20streams%22
on Sep 23, 2024https://github.com/nodejs/node/issues/55077#event-14361378348
https://github.com/avivkeller
avivkellerhttps://github.com/avivkeller
on Sep 23, 2024https://github.com/nodejs/node/issues/55077#issuecomment-2367945808
#55010https://github.com/nodejs/node/issues/55010
avivkellerhttps://github.com/avivkeller
web streamsIssues and PRs related to the Web Streams API.https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22web%20streams%22
on Sep 23, 2024https://github.com/nodejs/node/issues/55077#event-14362165045
https://github.com/ronag
ronaghttps://github.com/ronag
on Sep 23, 2024https://github.com/nodejs/node/issues/55077#issuecomment-2367982133
https://github.com/matthieusieben
matthieusiebenhttps://github.com/matthieusieben
on Sep 23, 2024https://github.com/nodejs/node/issues/55077#issuecomment-2368374540
https://github.com/mcollina
mcollinahttps://github.com/mcollina
on Sep 23, 2024https://github.com/nodejs/node/issues/55077#issuecomment-2368764188
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 Sep 23, 2024https://github.com/nodejs/node/issues/55077#event-14367042253
https://github.com/mcollina
mcollinahttps://github.com/mcollina
on Sep 23, 2024https://github.com/nodejs/node/issues/55077#issuecomment-2368764760
@matthieusiebenhttps://github.com/matthieusieben
https://github.com/matthieusieben
matthieusiebenhttps://github.com/matthieusieben
on Sep 24, 2024https://github.com/nodejs/node/issues/55077#issuecomment-2370702210
gave it a tryhttps://github.com/nodejs/node/pull/55096
https://github.com/ronag
ronaghttps://github.com/ronag
on Nov 23, 2024https://github.com/nodejs/node/issues/55077#issuecomment-2495416144
nodejs-github-bothttps://github.com/nodejs-github-bot
completedhttps://github.com/nodejs/node/issues?q=is%3Aissue%20state%3Aclosed%20archived%3Afalse%20reason%3Acompleted
#65963https://github.com/nodejs/node/pull/65963
on Sep 18, 2026https://github.com/nodejs/node/issues/55077#event-31369320035
nodejs-github-bothttps://github.com/nodejs-github-bot
on Sep 18, 2026https://github.com/nodejs/node/issues/55077#event-31369320317
stream: destroy Duplex.from async function on early returnhttps://github.com/nodejs/node/commit/0bf9e9f8331cc67cec92c8c9ad203e4d9736e03f
0bf9e9fhttps://github.com/nodejs/node/commit/0bf9e9f8331cc67cec92c8c9ad203e4d9736e03f
aduh95https://github.com/aduh95
on Sep 18, 2026https://github.com/nodejs/node/issues/55077#event-31401359234
stream: destroy Duplex.from async function on early returnhttps://github.com/nodejs/node/commit/4075161405bbe509c8cd9898d94a1e68fd763746
4075161https://github.com/nodejs/node/commit/4075161405bbe509c8cd9898d94a1e68fd763746
stream: destroy Duplex.from async function on early returnhttps://github.com/nodejs/node/commit/7c57ab86a58a233cd605d2a1617674625ed0e2b5
7c57ab8https://github.com/nodejs/node/commit/7c57ab86a58a233cd605d2a1617674625ed0e2b5
stream: destroy Duplex.from async function on early returnhttps://github.com/nodejs/node/commit/1260642ace5963398ffa3a783bb68ef4a063df63
1260642https://github.com/nodejs/node/commit/1260642ace5963398ffa3a783bb68ef4a063df63
mshimahttps://github.com/mshima
on Oct 1, 2026https://github.com/nodejs/node/issues/55077#event-32272980515
fix(adapter): avoid uncaught AbortError in TestAdapter on Node.js 26.10https://github.com/yeoman/yeoman-api/commit/25561d6154937ac07716977637bac3e93393a36f
25561d6https://github.com/yeoman/yeoman-api/commit/25561d6154937ac07716977637bac3e93393a36f
fix(adapter): avoid uncaught AbortError in TestAdapter on Node.js 26.…https://github.com/yeoman/yeoman-api/commit/bcb7341404918998fa6b20c586d79c14ad20045f
bcb7341https://github.com/yeoman/yeoman-api/commit/bcb7341404918998fa6b20c586d79c14ad20045f
mshimahttps://github.com/mshima
on Oct 20, 2026https://github.com/nodejs/node/issues/55077#event-33734825696
fix(adapter): avoid uncaught AbortError in TestAdapter on Node.js 26.…https://github.com/yeoman/yeoman-api/commit/e301960ddc75a32297f6856a8462cddf14e044a3
e301960https://github.com/yeoman/yeoman-api/commit/e301960ddc75a32297f6856a8462cddf14e044a3
Sign up for freehttps://github.com/signup?return_to=https://github.com/nodejs/node/issues/55077
Sign in to commenthttps://github.com/login?return_to=https://github.com/nodejs/node/issues/55077
confirmed-bugIssues and PRs for confirmed bugs.https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22confirmed-bug%22
streamIssues and PRs related to Node.js streams.https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22stream%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.