Crash in [@ mozilla::CheckedInt<T>::value] via MediaData::AdjustForStartTime
Categories
(Core :: Audio/Video: Playback, defect, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr60 | --- | unaffected |
| firefox66 | --- | wontfix |
| firefox67 | --- | wontfix |
| firefox68 | --- | fixed |
People
(Reporter: mccr8, Assigned: alwu)
References
Details
(Keywords: crash, regression, Whiteboard: [geckoview:fenix:m4][gvtv:p1][media-q2])
Crash Data
Attachments
(2 files, 1 obsolete file)
This bug is for crash report bp-cb656a71-c939-417d-9e2e-1c2ab0190401.
Top 10 frames of crashing thread:
0 libxul.so mozilla::CheckedInt<long long>::value const mfbt/CheckedInt.h:535
1 libxul.so mozilla::media::TimeUnit::IsNegative const dom/media/TimeUnits.h:107
2 libxul.so mozilla::MediaData::AdjustForStartTime dom/media/MediaData.h:301
3 libxul.so mozilla::AudioData::AdjustForStartTime dom/media/MediaData.cpp:66
4 libxul.so mozilla::ReaderProxy::OnAudioDataRequestCompleted dom/media/ReaderProxy.cpp:46
5 libxul.so mozilla::MozPromise<RefPtr<mozilla::AudioData>, mozilla::MediaResult, true>::ThenValue<mozilla::ReaderProxy*, RefPtr<mozilla::MozPromise<RefPtr<mozilla::AudioData>, mozilla::MediaResult, true> > xpcom/threads/MozPromise.h:502
6 libxul.so mozilla::MozPromise<RefPtr<mozilla::AudioData>, mozilla::MediaResult, true>::ThenValueBase::ResolveOrRejectRunnable::Run
7 libxul.so mozilla::AutoTaskDispatcher::TaskGroupRunnable::Run xpcom/threads/TaskDispatcher.h:197
8 libxul.so mozilla::TaskQueue::Runner::Run xpcom/threads/TaskQueue.cpp:199
9 libxul.so nsThreadPool::Run xpcom/threads/nsThreadPool.cpp:244
Alex made integer overflow checks into release asserts, and this is one of the crashes. It is Android-only.
| Reporter | ||
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Comment 1•6 years ago
|
||
This CheckedInt assertion failure is a top crash for Fennec 68 Nightly.
| Assignee | ||
Comment 2•6 years ago
|
||
In order to prevent the integer overflow due to the super large start time value, we should check whether the result is valid after the calculation.
| Assignee | ||
Comment 3•6 years ago
|
||
No one is using current return value after calling AdjustForStartTime(), but we would check whether mTime is valid instead.
Therefore, we should let AdjustForStartTime() return whether mTime is valid in order to reduce the additional check.
| Assignee | ||
Comment 4•6 years ago
|
||
There is no need to cast to TimeUnit to int64 and then cast to TimeUnit again.
| Assignee | ||
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Comment 6•6 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/ffb3ec9486e6
https://hg.mozilla.org/mozilla-central/rev/0b26cd4c1c21
Comment 7•6 years ago
|
||
Alastor, should we uplift your AdjustForStartTime fix to 67 Beta? I know CheckedInt's MOZ_RELEASE_ASSERT check is not in 67 Beta, but is the AdjustForStartTime problem a real bug that is relevant to 67 Beta?
| Assignee | ||
Comment 8•6 years ago
|
||
As there is no strong evidence showing that this issue (improper start time) would occur in 67 as well (the issue might be caused by other patches in 68), so I think we don't need to uplift those patches.
Comment 9•6 years ago
|
||
there is no strong evidence showing that this issue (improper start time) would occur in 67
That's good news. In that case, I will set 67=wontfix. :)
Updated•6 years ago
|
Updated•6 years ago
|
Description
•