###!!! ASSERTION: Should be on state machine thread or the decoder thread.: 'OnStateMachineThread() || OnDecodeThread()',

RESOLVED FIXED in mozilla28

Status

()

RESOLVED FIXED
6 years ago
5 years ago

People

(Reporter: padenot, Assigned: kinetik)

Tracking

unspecified
mozilla28
x86_64
Windows 7
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

6 years ago
Here: http://mxr.mozilla.org/mozilla-central/source/content/media/MediaDecoderStateMachine.cpp#1271

This happens with this stack:

http://pastebin.mozilla.org/2200840

I think we can just remove the assert (the sister method StartPlayback does not assert). I checked what it does below, it should be fine.
(Assignee)

Comment 1

5 years ago
Created attachment 827109 [details] [diff] [review]
bug848812_v0.patch

Ran into this while debugging another test issue.  Analysis below:

Called on the main thread:

(gdb) bt
#0  mozilla::MediaDecoderStateMachine::StopPlayback
#1  mozilla::MediaDecoderStateMachine::StartBuffering
#2  mozilla::MediaDecoder::Resume
#3  mozilla::dom::HTMLMediaElement::Play
#4  mozilla::dom::HTMLMediaElementBinding::play

MediaDecoder::Resume acquires monitor.  MediaDecoderStateMachine::StartBuffering asserts monitor is held.  MediaDecoderStateMachine::StopPlayback also asserts monitor is held.

This looks safe to me with the monitor held, so I agree with Paul.
Attachment #827109 - Flags: review?(cpearce)
Attachment #827109 - Flags: review?(cpearce) → review+
https://hg.mozilla.org/mozilla-central/rev/89436074858c
Assignee: nobody → kinetik
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
You need to log in before you can comment on or make changes to this bug.