Closed
Bug 792243
Opened 12 years ago
Closed 8 years ago
When stopping the load of a video using the escape key, all the things are leaked.
Categories
(Core :: Audio/Video: Playback, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: padenot, Unassigned)
Details
STR:
- Enable the NSPR log.
- Load a video as a top level document, start playing.
- Press escape, to stop the load of the video, while it is still downloading (not sure if that matters).
Expected:
- Everything (decoder, state machine, threads, etc.) is shut down when collection occurs.
Actual result:
- Shutdown is called on the nsBuiltinDecoder when the media element is release, something happens, and we still have a state machine and it's doing an infinite loop between DECODER_STATE_BUFFERING and DECODER_STATE_DECODING, that we can see in the NSPR log (This build had patches from bug 791344 applied to avoid locking up the browser, but only those patches, and I can reproduce without).
When checking what's going on using gdb, we see that despite having a single media element, we now have two decode thread, two state machine objects, two decoder, two readers, etc.
Then I tried closing the tab to see what happens (which is the only tab that was opened, containing a video in a top-level document), and it appears that we leak a whole "video decoding setup" (decoding and state machine threads, state machine, reader, decoder, element, etc. This video did not have a audio track, so I'm not sure about the audio thread). Opening about:memory and clicking the "CC", "GC", and "Minimize memory usage" a lot of times and waiting 15 minutes did not do anything (nothing is collected).
Updated•9 years ago
|
Component: Audio/Video → Audio/Video: Playback
Reporter | ||
Comment 1•8 years ago
|
||
I think everything has been refactored twice since this one.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•