Assertion failure: HasSimpleValue(), at /builds/worker/workspace/build/src/dom/media/webaudio/AudioEventTimeline.h:222
Categories
(Core :: Audio/Video, defect, P2)
Tracking
()
People
(Reporter: jkratzer, Assigned: dminor)
References
(Blocks 1 open bug)
Details
(Keywords: assertion, testcase)
Attachments
(2 files)
Testcase found while fuzzing mozilla-central rev 58400ee2747a.
Assertion failure: HasSimpleValue(), at /builds/worker/workspace/build/src/dom/media/webaudio/AudioEventTimeline.h:222
rax = 0x0000557e2ab361a0 rdx = 0x0000000000000000
rcx = 0x00007ff5709d007d rbx = 0x00007ffc239e8500
rsi = 0x00007ff57c40e8b0 rdi = 0x00007ff57c40d680
rbp = 0x00007ffc239e8470 rsp = 0x00007ffc239e8470
r8 = 0x00007ff57c40e8b0 r9 = 0x00007ff57d578780
r10 = 0x0000000000000000 r11 = 0x0000000000000000
r12 = 0x00007ffc239e84e8 r13 = 0x00007ffc239e84f0
r14 = 0x00007ffc239e84e8 r15 = 0x00007ffc239e8500
rip = 0x00007ff56c048d89
OS|Linux|0.0.0 Linux 4.18.0-25-generic #26~18.04.1-Ubuntu SMP Thu Jun 27 07:28:31 UTC 2019 x86_64
CPU|amd64|family 6 model 94 stepping 3|1
GPU|||
Crash|SIGSEGV|0x0|0
0|0|libxul.so|mozilla::dom::AudioEventTimeline::GetValue() const|hg:hg.mozilla.org/mozilla-central:dom/media/webaudio/AudioEventTimeline.h:58400ee2747af785469bbecf414d0d739591615c|222|0x16
0|1|libxul.so|mozilla::dom::PannerNode::ConvertAudioParamTo3DP(RefPtr<mozilla::dom::AudioParam>, RefPtr<mozilla::dom::AudioParam>, RefPtr<mozilla::dom::AudioParam>)|hg:hg.mozilla.org/mozilla-central:dom/media/webaudio/PannerNode.h:58400ee2747af785469bbecf414d0d739591615c|217|0x24
0|2|libxul.so|mozilla::dom::PannerNode::SetPosition(double, double, double)|hg:hg.mozilla.org/mozilla-central:dom/media/webaudio/PannerNode.h:58400ee2747af785469bbecf414d0d739591615c|78|0x3e
0|3|libxul.so|mozilla::dom::PannerNode_Binding::setPosition|s3:gecko-generated-sources:28d6c0fb81f035e7f383e81ac73b356a12895afe9cd62adee76354d1b4b873283ea260a2c3b16059064e2db97902f5e359ead18a5a8cc2925a46dc1f64324b0d/dom/bindings/PannerNodeBinding.cpp:|749|0x18
0|4|libxul.so|bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*)|hg:hg.mozilla.org/mozilla-central:dom/bindings/BindingUtils.cpp:58400ee2747af785469bbecf414d0d739591615c|3163|0x24
0|5|libxul.so|CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:58400ee2747af785469bbecf414d0d739591615c|447|0x16
0|6|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:58400ee2747af785469bbecf414d0d739591615c|539|0x12
0|7|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:58400ee2747af785469bbecf414d0d739591615c|594|0xd
0|8|libxul.so|Interpret|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:58400ee2747af785469bbecf414d0d739591615c|598|0xf
0|9|libxul.so|js::RunScript(JSContext*, js::RunState&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:58400ee2747af785469bbecf414d0d739591615c|424|0xb
0|10|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:58400ee2747af785469bbecf414d0d739591615c|567|0xf
0|11|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:58400ee2747af785469bbecf414d0d739591615c|594|0xd
0|12|libxul.so|js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:58400ee2747af785469bbecf414d0d739591615c|610|0x5
0|13|libxul.so|JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/jsapi.cpp:58400ee2747af785469bbecf414d0d739591615c|2655|0x1c
0|14|libxul.so|mozilla::dom::EventListener::HandleEvent(JSContext*, JS::Handle<JS::Value>, mozilla::dom::Event&, mozilla::ErrorResult&)|s3:gecko-generated-sources:9ca8646d8042e9b4b76d2e1b358b984be17743b71b832c0897d61bb500e0fecbe38fa54273dc522878c87fcb2c9bfd274a8190c7bc56fbbb58cb3ca68462e527/dom/bindings/EventListenerBinding.cpp:|52|0x5
0|15|libxul.so|mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, mozilla::dom::Event*, mozilla::dom::EventTarget*)|s3:gecko-generated-sources:f3d9c01258576daaac3afc4fb3b283652e7f1168abb5287eff6775451ebd0ab6a0e4c8d88d3a67f7147042501bc091c6dfed25b4b8ccf4e4f420897b8d0ba906/dist/include/mozilla/dom/EventListenerBinding.h:|66|0x1c
0|16|libxul.so|mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool)|hg:hg.mozilla.org/mozilla-central:dom/events/EventListenerManager.cpp:58400ee2747af785469bbecf414d0d739591615c|1223|0x19
0|17|libxul.so|mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&)|hg:hg.mozilla.org/mozilla-central:dom/events/EventDispatcher.cpp:58400ee2747af785469bbecf414d0d739591615c|351|0x6
0|18|libxul.so|mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&)|hg:hg.mozilla.org/mozilla-central:dom/events/EventDispatcher.cpp:58400ee2747af785469bbecf414d0d739591615c|551|0x12
0|19|libxul.so|mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*)|hg:hg.mozilla.org/mozilla-central:dom/events/EventDispatcher.cpp:58400ee2747af785469bbecf414d0d739591615c|1048|0x1a
0|20|libxul.so|mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsPresContext*, nsEventStatus*)|hg:hg.mozilla.org/mozilla-central:dom/events/EventDispatcher.cpp:58400ee2747af785469bbecf414d0d739591615c|1148|0x19
0|21|libxul.so|nsINode::DispatchEvent(mozilla::dom::Event&, mozilla::dom::CallerType, mozilla::ErrorResult&)|hg:hg.mozilla.org/mozilla-central:dom/base/nsINode.cpp:58400ee2747af785469bbecf414d0d739591615c|1062|0x5
0|22|libxul.so|nsContentUtils::DispatchEvent(mozilla::dom::Document*, nsISupports*, nsTSubstring<char16_t> const&, mozilla::CanBubble, mozilla::Cancelable, mozilla::Composed, mozilla::Trusted, bool*, mozilla::ChromeOnlyDispatch)|hg:hg.mozilla.org/mozilla-central:dom/base/nsContentUtils.cpp:58400ee2747af785469bbecf414d0d739591615c|3974|0x30
0|23|libxul.so|nsContentUtils::DispatchTrustedEvent(mozilla::dom::Document*, nsISupports*, nsTSubstring<char16_t> const&, mozilla::CanBubble, mozilla::Cancelable, mozilla::Composed, bool*)|hg:hg.mozilla.org/mozilla-central:dom/base/nsContentUtils.cpp:58400ee2747af785469bbecf414d0d739591615c|3945|0x19
0|24|libxul.so|mozilla::dom::Document::DispatchContentLoadedEvents()|hg:hg.mozilla.org/mozilla-central:dom/base/Document.cpp:58400ee2747af785469bbecf414d0d739591615c|7037|0x40
0|25|libxul.so|mozilla::detail::RunnableMethodImpl<mozilla::dom::Document*, void (mozilla::dom::Document::*)(), true, (mozilla::RunnableKind)0>::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.h:58400ee2747af785469bbecf414d0d739591615c|1176|0x13
0|26|libxul.so|mozilla::SchedulerGroup::Runnable::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/SchedulerGroup.cpp:58400ee2747af785469bbecf414d0d739591615c|295|0x15
0|27|libxul.so|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:58400ee2747af785469bbecf414d0d739591615c|1225|0x15
0|28|libxul.so|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:58400ee2747af785469bbecf414d0d739591615c|486|0x11
0|29|libxul.so|mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:58400ee2747af785469bbecf414d0d739591615c|88|0xa
0|30|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:58400ee2747af785469bbecf414d0d739591615c|315|0x17
0|31|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:58400ee2747af785469bbecf414d0d739591615c|290|0x8
0|32|libxul.so|nsBaseAppShell::Run()|hg:hg.mozilla.org/mozilla-central:widget/nsBaseAppShell.cpp:58400ee2747af785469bbecf414d0d739591615c|137|0xd
0|33|libxul.so|XRE_RunAppShell()|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:58400ee2747af785469bbecf414d0d739591615c|934|0x11
0|34|libxul.so|mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:58400ee2747af785469bbecf414d0d739591615c|238|0x5
0|35|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:58400ee2747af785469bbecf414d0d739591615c|315|0x17
0|36|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:58400ee2747af785469bbecf414d0d739591615c|290|0x8
0|37|libxul.so|XRE_InitChildProcess(int, char**, XREChildData const*)|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:58400ee2747af785469bbecf414d0d739591615c|769|0xc
0|38|firefox-bin|content_process_main(mozilla::Bootstrap*, int, char**)|hg:hg.mozilla.org/mozilla-central:ipc/contentproc/plugin-container.cpp:58400ee2747af785469bbecf414d0d739591615c|56|0x14
0|39|firefox-bin|main|hg:hg.mozilla.org/mozilla-central:browser/app/nsBrowserApp.cpp:58400ee2747af785469bbecf414d0d739591615c|267|0x12
0|40|libc-2.27.so||||0x21b97
0|41|firefox-bin|MOZ_ReportCrash|hg:hg.mozilla.org/mozilla-central:mfbt/Assertions.h:58400ee2747af785469bbecf414d0d739591615c|184|0x5
Comment 1•6 years ago
|
||
Dan, would you mind taking a first pass at triaging this? It looks like this https://searchfox.org/mozilla-central/source/dom/media/webaudio/PannerNode.h?#217 is the line that is causing the assertion.
| Assignee | ||
Updated•6 years ago
|
Updated•6 years ago
|
| Assignee | ||
Comment 2•6 years ago
|
||
This uses the arguments to SetPosition and SetOrientation directly rather than
first converting the AudioParams to a ThreeDPoint, which can cause an assertion
failure if the AudioParam has a scheduled future value.
Comment 4•6 years ago
|
||
| bugherder | ||
Comment 5•6 years ago
|
||
Can we land the testcase for this?
| Assignee | ||
Comment 6•6 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #5)
Can we land the testcase for this?
I didn't think it was necessary because the problematic code has been completely removed rather than rewritten, but I'll defer to Karl on this one.
Comment 7•6 years ago
|
||
setPosition() is deprecated, so time is probably better spent elsewhere.
Description
•