Closed Bug 1708718 Opened 2 years ago Closed 1 year ago

Crash in [@ cubeb_coreaudio::backend::CoreStreamData::setup]


(Core :: Audio/Video: cubeb, defect, P3)




95 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox-esr91 --- wontfix
firefox92 --- wontfix
firefox93 --- wontfix
firefox94 --- wontfix
firefox95 --- fixed


(Reporter: sefeng, Assigned: chunmin)


(Blocks 1 open bug)


(Keywords: crash)

Crash Data


(3 files)

Crash report:

MOZ_CRASH Reason: register default_output_listener without unregistering the one in use

Top 10 frames of crashing thread:

0 XUL RustMozCrash mozglue/static/rust/wrappers.cpp:17
1 XUL core::ops::function::Fn::call /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/core/src/ops/
2 XUL std::panicking::rust_panic_with_hook library/std/src/
3 XUL std::panicking::begin_panic::{{closure}} /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/
4 XUL std::sys_common::backtrace::__rust_end_short_backtrace /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/sys_common/
5 XUL std::panicking::begin_panic /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/
6 XUL cubeb_coreaudio::backend::CoreStreamData::setup third_party/rust/cubeb-coreaudio/src/backend/
7 XUL coreaudio_sys_utils::dispatch::Queue::create_closure_and_executor::closure_executer third_party/rust/coreaudio-sys-utils/src/
8 libdispatch.dylib _dispatch_client_callout 
9 libdispatch.dylib _dispatch_lane_serial_drain 

Chun-min, fyi.

Flags: needinfo?(cchang)

I'll take a look. The crash rate is low so I set this to P3 for now.

Assignee: nobody → cchang
Severity: -- → S3
Priority: -- → P3
Blocks: 1530713
Flags: needinfo?(cchang)

Keep NI

Flags: needinfo?(cchang)

Finally get some time to revisit this. I guess the problem is here. We will call the CoreStreamData::setup / install_system_changed_callback without calling CoreStreamData::close / uninstall_system_changed_callback so we hit the assertion in install_system_changed_callback.

I managed to reproduce this by forcing an error here how and when the first setup is called. As a result, the CoreStreamData::default_output_listener is Some when the second setup is called. I am not sure when this can happen. I need to hard code an error to reproduce this.

Attached file GitHub Pull Request
Flags: needinfo?(cchang)

Depends on D127832

Pushed by
Update cubeb-coreaudio to 5ada876. r=cubeb-reviewers,padenot
mach vendor rust. r=cubeb-reviewers,padenot
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 95 Branch

The patch landed in nightly and beta is affected.
:chunmin, is this bug important enough to require an uplift?
If not please set status_beta to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(cchang)

The crash rate is low and I don't think there is a security issue with this crash since it just hits an assertion. I am going to make this wontfix in beta.

Flags: needinfo?(cchang)
You need to log in before you can comment on or make changes to this bug.