Version
26.2.0
Platform
Subsystem
stream
What steps will reproduce the bug?
import{pull}from'node:stream/iter';constsource={async*[Symbol.asyncIterator](){awaitnewPromise(()=>{});},};constac=newAbortController();constiterator=pull(source,{signal: ac.signal})[Symbol.asyncIterator]();constnext=iterator.next().then(()=>'settled: fulfilled',(err)=>`settled: rejected with ${err.name}: ${err.message}`,);ac.abort();console.log(awaitPromise.race([next,newPromise((resolve)=>setTimeout(resolve,100,'still pending after abort')),]));How often does it reproduce? Is there a required condition?
Always
What is the expected behavior? Why is that the expected behavior?
settled: rejected with AbortError: This operation was aborted
Passing { signal } to pull() should let them stop the pipeline even when the source is idle or waiting for more data.
What do you see instead?
still pending after abort
The no-transform path remains stuck until the source eventually yields, so aborting does not actually abort the pending read.
Additional information
No response
Version
26.2.0
Platform
Subsystem
stream
What steps will reproduce the bug?
How often does it reproduce? Is there a required condition?
Always
What is the expected behavior? Why is that the expected behavior?
settled: rejected with AbortError: This operation was abortedPassing
{ signal }topull()should let them stop the pipeline even when the source is idle or waiting for more data.What do you see instead?
still pending after abortThe no-transform path remains stuck until the source eventually yields, so aborting does not actually abort the pending read.
Additional information
No response