Closed Bug 1586387 Opened 2 months ago Closed 2 months ago

Crash in [@ mozilla::MediaTrackGraphImpl::AppendMessage]

Categories

(Core :: Audio/Video: MediaStreamGraph, defect, P2, critical)

Desktop
All
defect

Tracking

()

RESOLVED FIXED
mozilla71
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- unaffected
firefox67 --- unaffected
firefox68 --- unaffected
firefox69 --- unaffected
firefox70 --- fixed
firefox71 --- fixed

People

(Reporter: marcia, Assigned: pehrsons)

References

(Regression)

Details

(Keywords: crash, regression)

Crash Data

Attachments

(2 files)

This bug is for crash report bp-a01eb454-a9d8-4f93-be48-aef0d0191004.

Seen while looking at nightly crash stats - so far only one crash on 10.15. Moz Crash reason: MOZ_DIAGNOSTIC_ASSERT(mMainThreadTrackCount > 0 || mMainThreadPortCount > 0)

Looks as if code was touched in Bug 1454998.

Top 10 frames of crashing thread:

0 XUL mozilla::MediaTrackGraphImpl::AppendMessage dom/media/MediaTrackGraph.cpp:1725
1 XUL mozilla::MediaTrackGraphImpl::DeviceChanged dom/media/MediaTrackGraph.cpp:873
2 XUL mozilla::runnable_args_memfn<RefPtr<mozilla::MediaTrackGraphImpl>, void  media/mtransport/runnable_utils.h:148
3 XUL mozilla::EventTargetWrapper::Runner::Run xpcom/threads/AbstractThread.cpp:113
4 XUL mozilla::SchedulerGroup::Runnable::Run xpcom/threads/SchedulerGroup.cpp:295
5 XUL nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1225
6 XUL NS_ProcessNextEvent xpcom/threads/nsThreadUtils.cpp:486
7 XUL mozilla::ipc::MessagePump::Run ipc/glue/MessagePump.cpp:110
8 XUL nsBaseAppShell::Run widget/nsBaseAppShell.cpp:137
9 XUL nsAppShell::Run widget/cocoa/nsAppShell.mm:705

Flags: needinfo?(apehrson)
Assignee: nobody → apehrson
Status: NEW → ASSIGNED
Flags: needinfo?(apehrson)
Priority: -- → P2
Crash Signature: [@ mozilla::MediaTrackGraphImpl::AppendMessage] → [@ mozilla::MediaTrackGraphImpl::AppendMessage], [@ mozilla::MediaStreamGraphImpl::AppendMessage]

The core issue here is a bit unclear, probably very old, but bug 1577537 has definitely exposed this more, so I'll use that for tracking.

Pushed by pehrsons@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/ead1bd9a7f61
Don't append a device change message to a graph that is going away. r=padenot

Comment on attachment 9099584 [details]
Bug 1586387 - Don't append a device change message to a graph that is going away. r?padenot

Beta/Release Uplift Approval Request

  • User impact if declined: High rate of assertion failures in nightly and dev edition. Potential exposure to unsafe behavior, though that is not a recent regression.
  • 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: STR is unknown, this the "No" for manual testing. If one were to try to find an STR it would require changing audio output device close to shutdown. We have visibility into the issue through crash-stats.
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Trivial; adds an early exit guard for the case that would lead to a crash.
  • String changes made/needed:
Attachment #9099584 - Flags: approval-mozilla-beta?
Crash Signature: [@ mozilla::MediaTrackGraphImpl::AppendMessage], [@ mozilla::MediaStreamGraphImpl::AppendMessage] → [@ mozilla::MediaTrackGraphImpl::AppendMessage] [@ mozilla::MediaStreamGraphImpl::AppendMessage]
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla71

Comment on attachment 9099584 [details]
Bug 1586387 - Don't append a device change message to a graph that is going away. r?padenot

Fix for moderate volume startup crash, let's bring it to beta 14. We don't have a lot of time on nightly here to judge the success of the fix , but I think it's worth a little risk and we still have time to back out for the RC if needed.

Attachment #9099584 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Backed out changeset 32bbe5136373 (Bug 1586387) for bustages complaining about MediaStreamGraph.cpp

Push with failure: https://treeherder.mozilla.org/#/jobs?repo=mozilla-beta&revision=0166812024e3762a87b3f7bc9cd287fc6027854e&selectedJob=270611020

Backout link: https://hg.mozilla.org/releases/mozilla-beta/rev/a71242e8207fd5741a2aa981adc13bb727bd158b

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=270611020&repo=mozilla-beta&lineNumber=32932

...
[task 2019-10-10T02:05:39.503Z] 02:05:39 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/dom/media'
[task 2019-10-10T02:05:39.505Z] 02:05:39 INFO - /builds/worker/fetches/clang/bin/clang++ -o Unified_cpp_dom_media7.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -DHAVE_UINT64_T -DWEBRTC_POSIX -DWEBRTC_BUILD_LIBEVENT -DWEBRTC_LINUX -DMOZILLA_INTERNAL_API -DTRACING -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/dom/media -I/builds/worker/workspace/build/src/obj-firefox/dom/media -I/builds/worker/workspace/build/src/caps -I/builds/worker/workspace/build/src/docshell/base -I/builds/worker/workspace/build/src/dom/base -I/builds/worker/workspace/build/src/layout/generic -I/builds/worker/workspace/build/src/layout/xul -I/builds/worker/workspace/build/src/media/libyuv/libyuv/include -I/builds/worker/workspace/build/src/netwerk/base -I/builds/worker/workspace/build/src/media/webrtc/signaling/src/common -I/builds/worker/workspace/build/src/media/webrtc/trunk -I/builds/worker/workspace/build/src/media/webrtc/trunk/webrtc -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ftrivial-auto-var-init=pattern -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-error=tautological-type-limit-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ftrivial-auto-var-init=pattern -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -Os -fno-omit-frame-pointer -funwind-tables -Werror -Wno-error=shadow -Wno-error=attributes -Wno-error=shadow -MD -MP -MF .deps/Unified_cpp_dom_media7.o.pp /builds/worker/workspace/build/src/obj-firefox/dom/media/Unified_cpp_dom_media7.cpp
[task 2019-10-10T02:05:39.506Z] 02:05:39 INFO - In file included from /builds/worker/workspace/build/src/obj-firefox/dom/media/Unified_cpp_dom_media7.cpp:29:
[task 2019-10-10T02:05:39.506Z] 02:05:39 ERROR - /builds/worker/workspace/build/src/dom/media/MediaStreamGraph.cpp:961:7: error: use of undeclared identifier 'mMainThreadTrackCount'
[task 2019-10-10T02:05:39.506Z] 02:05:39 INFO - if (mMainThreadTrackCount == 0 && mMainThreadPortCount == 0) {
[task 2019-10-10T02:05:39.507Z] 02:05:39 INFO - ^
[task 2019-10-10T02:05:39.507Z] 02:05:39 INFO - 1 error generated.
[task 2019-10-10T02:05:39.507Z] 02:05:39 INFO - /builds/worker/workspace/build/src/config/rules.mk:787: recipe for target 'Unified_cpp_dom_media7.o' failed
[task 2019-10-10T02:05:39.508Z] 02:05:39 ERROR - make[4]: *** [Unified_cpp_dom_media7.o] Error 1
[task 2019-10-10T02:05:39.509Z] 02:05:39 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/dom/media'
[task 2019-10-10T02:05:39.509Z] 02:05:39 INFO - make[4]: *** Waiting for unfinished jobs....
[task 2019-10-10T02:05:39.511Z] 02:05:39 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/dom/bindings'
[task 2019-10-10T02:05:39.511Z] 02:05:39 INFO - dom/bindings/UnifiedBindings24.o
[task 2019-10-10T02:05:39.511Z] 02:05:39 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/dom/bindings'
[task 2019-10-10T02:05:40.856Z] 02:05:40 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/dom/media/platforms/ffmpeg/ffvpx'
[task 2019-10-10T02:05:40.856Z] 02:05:40 INFO - /builds/worker/fetches/clang/bin/clang++ -o Unified_cpp_ffmpeg_ffvpx0.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DDEBUG=1 -DFFVPX_VERSION=46465650 -DUSING_MOZFFVPX -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/dom/media/platforms/ffmpeg/ffvpx -I/builds/worker/workspace/build/src/obj-firefox/dom/media/platforms/ffmpeg/ffvpx -I/builds/worker/workspace/build/src/xpcom/build -I/builds/worker/workspace/build/src/dom/media/platforms/ffmpeg -I/builds/worker/workspace/build/src/dom/media/platforms/ffmpeg/ffmpeg58/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ftrivial-auto-var-init=pattern -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-error=tautological-type-limit-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ftrivial-auto-var-init=pattern -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -Os -fno-omit-frame-pointer -funwind-tables -Werror -Wno-deprecated-declarations -Wno-unknown-attributes -MD -MP -MF .deps/Unified_cpp_ffmpeg_ffvpx0.o.pp /builds/worker/workspace/build/src/obj-firefox/dom/media/platforms/ffmpeg/ffvpx/Unified_cpp_ffmpeg_ffvpx0.cpp
[task 2019-10-10T02:05:40.856Z] 02:05:40 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/dom/media/platforms/ffmpeg/ffvpx'
[task 2019-10-10T02:05:40.857Z] 02:05:40 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/dom/media/webaudio'
[task 2019-10-10T02:05:40.859Z] 02:05:40 INFO - mkdir -p '.deps/'
[task 2019-10-10T02:05:40.860Z] 02:05:40 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/dom/media/webaudio'
[task 2019-10-10T02:05:40.861Z] 02:05:40 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/dom/media/webaudio'
[task 2019-10-10T02:05:40.861Z] 02:05:40 INFO - dom/media/webaudio/AudioNodeEngineSSE2.o
...

Flags: needinfo?(apehrson)

Apologies, there was a name change of one of these members in 71, I'll put up a port for 70 as soon as possible.

Flags: needinfo?(apehrson)
Whiteboard: [checkin-needed-beta]
You need to log in before you can comment on or make changes to this bug.