Closed Bug 1505250 Opened 6 years ago Closed 5 years ago

Intermittent dom/media/test/test_looping_eventsOrder.html | application crashed [@ mozilla::MediaDecoderStateMachine::LoopingDecodingState::HandleError(mozilla::MediaResult const&)] after Assertion failure: aError != NS_ERROR_DOM_MEDIA_END_OF_STREAM

Categories

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

defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla66
Tracking Status
firefox-esr60 --- unaffected
firefox64 --- unaffected
firefox65 --- fixed
firefox66 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: alwu)

References

Details

(Keywords: crash, intermittent-failure)

Crash Data

Attachments

(1 file)

From https://treeherder.mozilla.org/logviewer.html#?job_id=210192676&repo=autoland&lineNumber=5166

[task 2018-11-06T23:06:28.078Z] 23:06:28     INFO - GECKO(1777) | Assertion failure: aError != NS_ERROR_DOM_MEDIA_END_OF_STREAM, at /builds/worker/workspace/build/src/dom/media/MediaDecoderStateMachine.cpp:932
[task 2018-11-06T23:07:53.648Z] 23:07:53     INFO - GECKO(1777) | #01: mozilla::MozPromise<RefPtr<mozilla::AudioData>, mozilla::MediaResult, true>::ThenValue<mozilla::MediaDecoderStateMachine::LoopingDecodingState::HandleEndOfAudio()::{lambda()#1}::operator()() const::{lambda(RefPtr<mozilla::AudioData>)#1}, mozilla::MediaDecoderStateMachine::LoopingDecodingState::HandleEndOfAudio()::{lambda()#1}::operator()() const::{lambda(mozilla::MediaResult const&)#1}>::DoResolveOrRejectInternal(mozilla::MozPromise<RefPtr<mozilla::AudioData>, mozilla::MediaResult, true>::ResolveOrRejectValue&) [xpcom/threads/MozPromise.h:791]
[task 2018-11-06T23:07:53.649Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.650Z] 23:07:53     INFO - GECKO(1777) | #02: mozilla::MozPromise<RefPtr<mozilla::AudioData>, mozilla::MediaResult, true>::ThenValueBase::ResolveOrRejectRunnable::Run() [mfbt/RefPtr.h:69]
[task 2018-11-06T23:07:53.650Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.651Z] 23:07:53     INFO - GECKO(1777) | #03: mozilla::AutoTaskDispatcher::TaskGroupRunnable::Run() [mfbt/ThreadLocal.h:177]
[task 2018-11-06T23:07:53.652Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.653Z] 23:07:53     INFO - GECKO(1777) | #04: mozilla::TaskQueue::Runner::Run() [xpcom/threads/TaskQueue.cpp:236]
[task 2018-11-06T23:07:53.654Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.655Z] 23:07:53     INFO - GECKO(1777) | #05: nsThreadPool::Run() [xpcom/threads/nsThreadPool.cpp:0]
[task 2018-11-06T23:07:53.656Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.658Z] 23:07:53     INFO - GECKO(1777) | #06: non-virtual thunk to nsThreadPool::Run() [xpcom/threads/nsThreadPool.cpp:0]
[task 2018-11-06T23:07:53.660Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.661Z] 23:07:53     INFO - GECKO(1777) | #07: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1233]
[task 2018-11-06T23:07:53.662Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.663Z] 23:07:53     INFO - GECKO(1777) | #08: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:530]
[task 2018-11-06T23:07:53.665Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.667Z] 23:07:53     INFO - GECKO(1777) | #09: mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:334]
[task 2018-11-06T23:07:53.668Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.670Z] 23:07:53     INFO - GECKO(1777) | #10: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:598]
[task 2018-11-06T23:07:53.672Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.674Z] 23:07:53     INFO - GECKO(1777) | #11: nsThread::ThreadFunc(void*) [xpcom/threads/nsThread.cpp:507]
[task 2018-11-06T23:07:53.675Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.976Z] 23:07:53     INFO - GECKO(1777) | #12: _pt_root [nsprpub/pr/src/pthreads/ptthread.c:204]
[task 2018-11-06T23:07:53.978Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.980Z] 23:07:53     INFO - GECKO(1777) | #13: libpthread.so.0 + 0x76ba
[task 2018-11-06T23:07:53.984Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.987Z] 23:07:53     INFO - GECKO(1777) | #14: libc.so.6 + 0x10741d
[task 2018-11-06T23:07:53.989Z] 23:07:53     INFO - 
[task 2018-11-06T23:07:53.991Z] 23:07:53     INFO - GECKO(1777) | #15: ??? (???:???)
Summary: Intermittent dom/media/test/test_looping_eventsOrder.html | application crashed [@ mozilla::MediaDecoderStateMachine::LoopingDecodingState::HandleError(mozilla::MediaResult const&)] → Intermittent dom/media/test/test_looping_eventsOrder.html | application crashed [@ mozilla::MediaDecoderStateMachine::LoopingDecodingState::HandleError(mozilla::MediaResult const&)] after Assertion failure: aError != NS_ERROR_DOM_MEDIA_END_OF_STREAM
I've started triggering this on linux64 debug M-sw-e10s with some patches recently, [1].

It's not the patches themselves though, as I'm getting this on linux64 debug non-opt locally too, with the command:
> ./mach test dom/media/test/test_looping_eventsOrder.html --setpref=dom.serviceWorkers.parent_intercept=true --verify

It doesn't happen on the first iteration but typically the second.


Alastor, dom/media/test/test_looping_eventsOrder.html is your test. Can you take a look?


[1] https://treeherder.mozilla.org/#/jobs?repo=try&tier=1%2C2%2C3&selectedJob=217059107&revision=e6c4cfa97edcd9cdb18c69275fbbb987a20b470d
Blocks: 1512958
Component: Audio/Video → Audio/Video: Playback
Flags: needinfo?(alwu)
Priority: P5 → --
Product: Firefox for Android → Core
I believe this is the same issue as bug1508501, but now I still didn't figure out the root cause yet.
Flags: needinfo?(alwu)
See Also: → 1508501
FWIW you can use my patches as linked in comment 4 to repro this locally. This is currently blocking bug 1512958 which is a 65 regression.
OK, I'll continue to investigate this bug today.
Assignee: nobody → alwu
If we can't get any sample anymore, the resource might have been closed, so we should change state to 'completedState'.
See Also: 1508501
https://hg.mozilla.org/mozilla-central/rev/ca959629000b
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla66
Please request Beta approval on this when you get a chance.
Flags: needinfo?(alwu)
Comment on attachment 9032569 [details]
Bug 1505250 -  change state to 'completedState' if we can't get any sample anymore.

[Beta/Release Uplift Approval Request]

Feature/Bug causing the regression: Bug 1499903

User impact if declined: can't fix the intermittent test case fail.

Is this code covered by automated tests?: No

Has the fix been verified in Nightly?: No

Needs manual test from QE?: No

If yes, steps to reproduce: no

List of other uplifts needed: no

Risk to taking this patch: Low

Why is the change risky/not risky? (and alternatives if risky): This patch is used to remove the assertion and changes the internal state transition which is trivial.

String changes made/needed: no
Flags: needinfo?(alwu)
Attachment #9032569 - Flags: approval-mozilla-beta?
Comment on attachment 9032569 [details]
Bug 1505250 -  change state to 'completedState' if we can't get any sample anymore.

[Triage Comment]
Needed for the uplift of bug 1512958. Approved for 65.0b8.
Attachment #9032569 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: