Closed Bug 1280814 Opened 3 years ago Closed 3 years ago

Assertion failure: aStart <= aEnd, at dom/media/Intervals.h:56, from mozilla::dom::TextTrackManager::TimeMarchesOn


(Core :: Audio/Video: Playback, defect)

Not set



Tracking Status
firefox48 --- unaffected
firefox49 --- fixed
firefox50 --- fixed


(Reporter: dbaron, Assigned: bechen)




(Keywords: assertion, crash, regression)


(3 files)

I loaded , paused the video at about 2 seconds in, skipped it to 10 seconds, and then unpaused and played the entire rest of the video.  When the video finished, I think it was starting to play a different video, but the content process crashed due to a fatal assertion.

Assertion failure: aStart <= aEnd, at /home/dbaron/builds/ssd/mozilla-central/mozilla/dom/media/Intervals.h:56

The key problem seems to be:

#5  0x00007f843d1a63d0 in <signal handler called> ()
    at /lib/x86_64-linux-gnu/
#6  0x00007f843997fd09 in mozilla::dom::TextTrackManager::TimeMarchesOn() (this=<optimized out>, __in_chrg=<optimized out>)
    at /home/dbaron/builds/ssd/mozilla-central/obj/firefox-debugopt/dist/include/mozilla/AlreadyAddRefed.h:101
#7  0x00007f843997fd09 in mozilla::dom::TextTrackManager::TimeMarchesOn() (this=0x9a8f6b0)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/dom/html/TextTrackManager.cpp:569
#8  0x00007f8439930216 in mozilla::dom::HTMLMediaElement::FireTimeUpdate(bool) (this=0x7b7fd30, aPeriodic=<optimized out>)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/dom/html/HTMLMediaElement.cpp:4848

(gdb) f 7
#7  mozilla::dom::TextTrackManager::TimeMarchesOn (this=0x9a8f6b0)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/dom/html/TextTrackManager.cpp:569
569	    otherCues = mNewCues->GetCueListByTimeInterval(interval);;
(gdb) p currentPlaybackTime
$1 = 0.0043990000000000001
(gdb) p mLastTimeMarchesOnCalled
$2 = 155.07811899999999

which looks like a regression from (bug 882718).
Flags: needinfo?(andrew.quartey)
And I'm running a 64-bit Linux debug build based on plus some of my local changes, but not including anything likely relevant here.

The code that's asserting is this call to the Interval constructor:

  // Populate otherCues with 'non-active" cues.
  if (hasNormalPlayback) {
    media::Interval<double> interval(mLastTimeMarchesOnCalled,
    otherCues = mNewCues->GetCueListByTimeInterval(interval);;
Flags: needinfo?(bechen)
Flags: needinfo?(bechen)
See Also: → 1280192
Flags: needinfo?(andrew.quartey)
The comment 0 gdb shows that during these two timeupdate (155s the first video end and 0.004s the second video start), there is no seek operation, the crash at TextTrackManager::TimeMarchesOn().

After discussed with jw offline, I guess we need to notify the TextTrackManager at the end of video and the the AbortExistingLoads().
Assignee: nobody → bechen
Comment on attachment 8763476 [details]
Bug 1280814 - Prevent the media::Interval crash due to the unexpected playback position.
Attachment #8763476 - Flags: review?(giles) → review+
Keywords: checkin-needed
Pushed by
Prevent the media::Interval crash due to the unexpected playback position. r=rillian
Keywords: checkin-needed
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
Approval Request Comment
[Feature/regressing bug #]: 882718
[User impact if declined]: video element might crash at debug build
[Describe test coverage new/current, TreeHerder]: current mochitest test_peerConnection_scaleResolution.html
[Risks and why]: low risk, fix crash.
[String/UUID change made/needed]: none
Attachment #8765347 - Flags: approval-mozilla-aurora?
Could you help approve the patch?
It is important due to bug 882718 comment 111.
Flags: needinfo?(lhenry)
Comment on attachment 8765347 [details] [diff] [review]

Crash fix, will help with web compat. Please uplift to aurora
Flags: needinfo?(lhenry)
Attachment #8765347 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
See Also: → 1278479
Depends on: 1294142
You need to log in before you can comment on or make changes to this bug.