Closed Bug 1223655 Opened 4 years ago Closed 4 years ago

Intermittent "###!!! ASSERTION: Track not found" in MediaEngineDefaultAudioSource::NotifyPull

Categories

(Core :: Audio/Video: MediaStreamGraph, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla45
Tracking Status
firefox45 --- fixed
firefox46 --- fixed

People

(Reporter: pehrsons, Assigned: pehrsons)

References

Details

Attachments

(3 files)

The patch at [1] introduced a little race in MediaEngineDefaultAudioSource. In this case the audio track has ended but the stream is not finished so NotifyPull is still proxied through to the audio source.

We should keep track of when the audio track ends and tell the audio source so it can stop asking the SourceMediaStream for info on a track that does not exist.

[1] https://hg.mozilla.org/integration/mozilla-inbound/rev/4c0e38d45f7b
Assignee: nobody → pehrsons
Status: NEW → ASSIGNED
Summary: "###!!! ASSERTION: Track not found" in MediaEngineDefaultAudioSource::NotifyPull → Intermittent "###!!! ASSERTION: Track not found" in MediaEngineDefaultAudioSource::NotifyPull
Bug 1223655 - Only check for track end if track exists in MediaEngineDefaultAudioSource. r?jesup
Attachment #8685785 - Flags: review?(rjesup)
Comment on attachment 8685785 [details]
MozReview Request: Bug 1223655 - Only check for track end if track exists in MediaEngineDefaultAudioSource. r?jesup

https://reviewboard.mozilla.org/r/24911/#review22421
Attachment #8685785 - Flags: review?(rjesup) → review+
https://hg.mozilla.org/mozilla-central/rev/b01d694885ed
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
Version: 33 Branch → Trunk
Still seeing these, though with what feels like reduced frequency, e.g. https://treeherder.mozilla.org/logviewer.html#?job_id=2677135&repo=mozilla-central
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
I know why - there's a mismatch between what is checked when we explicitly check for the track's existence in the StreamBuffer (FindTrackID) and what is checked by GetEndOfAppendedData().

What this means is basically that we'll assert if the track has ended but has not been removed from the StreamBuffer.
Flags: needinfo?(pehrsons)
Rank: 25
Priority: -- → P2
This should do it.

GetEndOfAppendedData gives this error when the TrackData for the provided TrackID is not found. We set the StreamBuffer's Track struct to ended at the same time as we remove that TrackData, during an MSG iteration.
Flags: needinfo?(pehrsons)
Attachment #8700948 - Flags: review?(rjesup)
Attachment #8700948 - Flags: review?(rjesup) → review+
https://hg.mozilla.org/mozilla-central/rev/f355522e9954
https://hg.mozilla.org/mozilla-central/rev/e98ed2bb333d
Status: REOPENED → RESOLVED
Closed: 4 years ago4 years ago
Resolution: --- → FIXED
This is a merge of the two last fixes that landed on 46, rebased on top of 45. Carries r=jesup.

Approval Request Comment
[Feature/regressing bug #]: First patch of this, bug 1223655
[User impact if declined]: Intermittent oranges on debug builds
[Describe test coverage new/current, TreeHerder]: Landed on m-c, fixed the current orange per [1].
[Risks and why]: No risk. Change only applies to debug builds on a feature we only use in testing.
[String/UUID change made/needed]: None

[1] https://brasstacks.mozilla.com/orangefactor/?display=Bug&bugid=1223655&startday=2015-12-18&tree=mozilla-inbound
Attachment #8701732 - Flags: review+
Attachment #8701732 - Flags: approval-mozilla-aurora?
Attachment #8701732 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.