Closed
Bug 1311137
Opened 8 years ago
Closed 8 years ago
Intermittent /media-source/SourceBuffer-abort-updating.html | application crashed [@ mozilla::media::Interval<mozilla::media::TimeUnit>::Interval<mozilla::media::TimeUnit, mozilla::media::TimeUnit&>]
Categories
(Core :: Audio/Video: Playback, defect)
Core
Audio/Video: Playback
Tracking
()
RESOLVED
FIXED
mozilla52
Tracking | Status | |
---|---|---|
firefox50 | --- | unaffected |
firefox51 | --- | fixed |
firefox52 | --- | fixed |
People
(Reporter: intermittent-bug-filer, Assigned: jya)
References
(Depends on 1 open bug)
Details
(Keywords: intermittent-failure)
Attachments
(1 file)
58 bytes,
text/x-review-board-request
|
mozbugz
:
review+
gchang
:
approval-mozilla-aurora+
|
Details |
Comment hidden (mozreview-request) |
Assignee | ||
Updated•8 years ago
|
Comment 2•8 years ago
|
||
mozreview-review |
Comment on attachment 8802344 [details]
Bug 1311137: [MSE] Ensure buffered range doesn't get modified during run.
https://reviewboard.mozilla.org/r/86754/#review85706
r+ with commit-description nits, and a suggestion (for now, or FYI for later code).
::: dom/media/mediasource/TrackBuffersManager.h:1
(Diff revision 1)
> /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
In the commit description:
'modify' -> 'modified'.
Also, "during the run" is a bit ambiguous. How about "during Buffered() call"?
Also also, the bug and its fix are quite subtle, I think it would be nice to add a short explanation in the commit description, e.g.: "Previously two separate monitors were used to find the highest end time, and then work on tracks, introducing the possibility that tracks could be modified between these two operations. Now only one monitor is used to ensure consistency."
(If I'm correct.)
::: dom/media/mediasource/TrackBuffersManager.h:471
(Diff revision 1)
> + // Monitor must be held.
> + media::TimeUnit HighestEndTime(nsTArray<const media::TimeIntervals*>& aTracks) const;
"Monitor must be held."
This comment is a bit scary!
The method is private, so hopefully unlikely to get wrongly used.
Suggestion:
If there is any possibility that this may hurt us in the future, a trick I've seen elsewhere is to explicitly require a proof of the lock in the function parameters, e.g.:
> ...HighestEndTime(..., const MonitorAutoLock& aProofOfLock)
(This parameter is not actually used in the definition.)
The extra argument in the caller should be very cheap, or even be optimized away.
And it's done at compile time, which should be cheaper and more reliable than 'mMonitor.AssertCurrentThreadOwns()'.
Attachment #8802344 -
Flags: review?(gsquelart) → review+
Assignee | ||
Comment 3•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8802344 [details]
Bug 1311137: [MSE] Ensure buffered range doesn't get modified during run.
https://reviewboard.mozilla.org/r/86754/#review85706
> "Monitor must be held."
> This comment is a bit scary!
> The method is private, so hopefully unlikely to get wrongly used.
>
> Suggestion:
> If there is any possibility that this may hurt us in the future, a trick I've seen elsewhere is to explicitly require a proof of the lock in the function parameters, e.g.:
> > ...HighestEndTime(..., const MonitorAutoLock& aProofOfLock)
> (This parameter is not actually used in the definition.)
>
> The extra argument in the caller should be very cheap, or even be optimized away.
>
> And it's done at compile time, which should be cheaper and more reliable than 'mMonitor.AssertCurrentThreadOwns()'.
no idea what problem you are attempting to prevent, nor what you mean here.
Comment hidden (mozreview-request) |
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/df1b230e2444
[MSE] Ensure buffered range doesn't get modified during run. r=gerald
Updated•8 years ago
|
Component: Audio/Video → Audio/Video: Playback
Comment 6•8 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla52
Assignee | ||
Comment 7•8 years ago
|
||
Comment on attachment 8802344 [details]
Bug 1311137: [MSE] Ensure buffered range doesn't get modified during run.
Approval Request Comment
[Feature/regressing bug #]: 1297037
[User impact if declined]: invalid buffered range returned (non spec compliant), will assert on debug build
[Describe test coverage new/current, TreeHerder]: In central
[Risks and why]: None, we revert to a logically identical code before 1297037.
[String/UUID change made/needed]: None
Attachment #8802344 -
Flags: approval-mozilla-aurora?
Comment 8•8 years ago
|
||
Comment on attachment 8802344 [details]
Bug 1311137: [MSE] Ensure buffered range doesn't get modified during run.
Fix an intermittent-failure. Take it in 51 aurora.
Attachment #8802344 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Comment 9•8 years ago
|
||
has problems to apply to aurora
grafting 370288:df1b230e2444 "Bug 1311137: [MSE] Ensure buffered range doesn't get modified during run. r=gerald"
merging dom/media/mediasource/TrackBuffersManager.cpp
merging dom/media/mediasource/TrackBuffersManager.h
warning: conflicts while merging dom/media/mediasource/TrackBuffersManager.cpp! (edit, then use 'hg resolve --mark')
abort: unresolved conflicts, can't continue
(use 'hg resolve' and 'hg graft --continue')
Flags: needinfo?(jyavenard)
Assignee | ||
Comment 10•8 years ago
|
||
Flags: needinfo?(jyavenard)
Updated•8 years ago
|
status-firefox50:
--- → unaffected
You need to log in
before you can comment on or make changes to this bug.
Description
•