RESOLVED FIXED 247618
ReadableStream::pipeTo memory leak
https://bugs.webkit.org/show_bug.cgi?id=247618
Summary ReadableStream::pipeTo memory leak
Gil Pedersen
Reported 2022-11-08 07:22:42 PST
When a ReadableStream is piped to a WritableStream using pipeTo() with the signal option, the pipeState object will be retained indefinitely unless the signal is aborted. Specifically, the algorithm() method passed as the abort signal handler references the pipeState.finalized property, causing it to be referenced as along as the abort has not been triggered: https://github.com/WebKit/WebKit/blob/bdb44a70527586f1b1b746cfda75a2b0ae00c7f6/Source/WebCore/Modules/streams/ReadableStreamInternals.js#L167-L196 The issue was introduced in Bug 215448. FYI, according to this comment, the spec was disregarded and a non-compliant solution was implemented instead: https://github.com/WebKit/WebKit/blob/bdb44a70527586f1b1b746cfda75a2b0ae00c7f6/Source/WebCore/Modules/streams/ReadableStreamInternals.js#L380
Attachments
Radar WebKit Bug Importer
Comment 1 2022-11-15 07:23:14 PST
youenn fablet
Comment 2 2022-11-23 02:43:00 PST
EWS
Comment 3 2022-11-29 01:39:44 PST
Committed 257109@main (cb01f4ca942d): <https://commits.webkit.org/257109@main> Reviewed commits have been landed. Closing PR #6759 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.