Crash in [@ AAudioStream_getFramesWritten.cfi]
Categories
(Core :: Audio/Video: cubeb, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr128 | --- | unaffected |
firefox134 | --- | wontfix |
firefox135 | --- | fixed |
firefox136 | --- | fixed |
People
(Reporter: aryx, Assigned: pehrsons)
References
(Regression)
Details
(Keywords: crash, regression)
Crash Data
Attachments
(4 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-beta+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-beta+
|
Details | Review |
60 crashes from 40 installs per release cycle, only crash reports for Android 12 and 15, Google Pixel devices and HTC Desire 22 pro stand out.
Crash report: https://crash-stats.mozilla.org/report/index/b699b487-744f-4599-b1bb-d3a0d0241208
Reason:
SIGSEGV / SEGV_MAPERR
Top 8 frames:
0 libaaudio.so AAudioStream_getFramesWritten.cfi
1 libxul.so reinitialize_stream(cubeb_stream*)::$_0::operator()() const media/libcubeb/src/cubeb_aaudio.cpp:1045
1 libxul.so std::__ndk1::__invoke[abi:nn180000]<reinitialize_stream(cubeb_stream*)::$_0, ... /builds/worker/fetches/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__type_traits/invoke.h:344
1 libxul.so _ZNSt6__ndk116__thread_executeB8nn180000INS_10unique_ptrINS_15__thread_struct... /builds/worker/fetches/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__thread/thread.h:190
1 libxul.so std::__ndk1::__thread_proxy[abi:nn180000]<std::__ndk1::tuple<std::__ndk1::uni... /builds/worker/fetches/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__thread/thread.h:199
2 libmozglue.so set_alt_signal_stack_and_start(PthreadCreateParams*) mozglue/interposers/pthread_create_interposer.cpp:81
3 libc.so __pthread_start(void*)
4 libc.so __start_thread
Would you have any thoughts here :kinetik?
Comment 2•1 month ago
|
||
AAudioStream_getFramesWritten
is called with nullptr
, we should handle this. Andreas, do you want to fold that in your buffering work or do you want me to take this?
Assignee | ||
Updated•1 month ago
|
Assignee | ||
Updated•1 month ago
|
Assignee | ||
Comment 3•1 month ago
|
||
I haven't worked out how to reproduce this. In my mind, reinit without an output stream means reinit on an input-only stream. But on Android we shouldn't get an input-only stream since we only expose one input device. Input-only streams are used only when we open multiple input devices.
So perhaps these crashes are hitting a different mode, where, say, the output stream is removed before the async reinit function runs.
I have a patch that should fix the immediate crash regardless. But per the above I am not sure whether there may be still be a lingering failure mode once landed.
Assignee | ||
Comment 4•1 month ago
|
||
Comment 5•1 month ago
|
||
Set release status flags based on info from the regressing bug 1902263
Assignee | ||
Comment 6•1 month ago
|
||
Assignee | ||
Comment 7•1 month ago
|
||
The fewer lines added the better, and narrow down the use of
DisableCrashReporter in the parent process to a minimum.
Comment 9•1 month ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/cc717fd675d9
https://hg.mozilla.org/mozilla-central/rev/65f1f60bc400
Assignee | ||
Updated•1 month ago
|
Assignee | ||
Comment 10•1 month ago
|
||
The fewer lines added the better, and narrow down the use of
DisableCrashReporter in the parent process to a minimum.
Original Revision: https://phabricator.services.mozilla.com/D233658
Updated•1 month ago
|
Assignee | ||
Comment 11•1 month ago
|
||
Original Revision: https://phabricator.services.mozilla.com/D233517
Updated•1 month ago
|
Comment 12•1 month ago
|
||
beta Uplift Approval Request
- User impact if declined: Crashes on Android when capturing a microphone, exact trigger unclear
- Code covered by automated testing: no
- Fix verified in Nightly: no
- Needs manual QE test: no
- Steps to reproduce for manual QE testing: No steps, we'll have to monitor crash-stats.
- Risk associated with taking this patch: low
- Explanation of risk level: trivial fix for android, riding along is a trivial assert fix for opensl (older android) and a simple fix for a narrow default device selection case on windows
- String changes made/needed: none
- Is Android affected?: yes
Updated•1 month ago
|
Updated•1 month ago
|
Comment 13•1 month ago
|
||
uplift |
Updated•1 month ago
|
Description
•