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)

x86_64
Linux
defect
Not set
normal

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).
Component: Audio/Video → Audio/Video: Playback
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.