Too much recursion error in /streams/writable-streams/aborting.any.worker.html
Categories
(Core :: DOM: Streams, defect)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox97 | --- | fixed |
People
(Reporter: evilpies, Assigned: saschanaz)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
When running this test we get a "too much recursion" error.
This seems to be caused by firing the signal's abort event synchronously with writer.abort(e2), while inside the abort event listener. Not sure if this is a test issue or if the event should be dispatched differently or something else entirely.
| Assignee | ||
Comment 1•4 years ago
|
||
Aborting an already aborted writer should do nothing I guess?
| Assignee | ||
Comment 2•4 years ago
|
||
The "should do nothing" part is in https://dom.spec.whatwg.org/#abortsignal-signal-abort
If signal is aborted, then return.
AbortSignal::SignalAbort should return early but current only AbortSignalImpl::SignalAbort does.
| Reporter | ||
Comment 3•4 years ago
|
||
AbortSignal::SignalAbort should return early but current only AbortSignalImpl::SignalAbort does.
Nice! Sounds like we can just add an early return before calling AbortSignalImpl::SignalAbort. I do wonder why that method doesn't dispatch the "abort" event as well.
| Assignee | ||
Comment 4•4 years ago
|
||
I believe it's because the impl one is only for internal use. Do you want to work on this?
| Assignee | ||
Comment 6•4 years ago
|
||
Currently only AbortSignalImpl::SignalAbort returns early. Both can be called directly, so both should return early.
Currently not really testable since this is only problematic in dom/streams and it's still hidden by a build flag.
Comment 8•4 years ago
|
||
| bugherder | ||
Description
•