Closed Bug 1570080 Opened 5 years ago Closed 5 years ago

Crash when unplugging non-default devices during a WebRTC meeting

Categories

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

70 Branch
Unspecified
macOS
defect

Tracking

()

RESOLVED FIXED
Tracking Status
firefox70 --- affected

People

(Reporter: chunmin, Assigned: chunmin)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file)

Problem

The steps to reproduce this crash are similar as the steps in bug 1570077, but this is a different crash.

Step to reproduce

  1. Connect your Bluetooth microphone to the mac OS
  2. Make sure it's NOT the default input device
  3. Open Firefox Nightly
  4. Open about:config
  5. Create a "media.cubeb.backend" pref and set it to "audiounit-rust" in about:config
    • Optional: set "media.cubeb.logging_level" to "verbose" to see the log
  6. Open WebRTC meeting room (e.g., https://appear.in/)
  7. Disconnect your Bluetooth microphone to the mac OS during the WebRTC meeting

Expected Result

The WebRTC continue working after disconnecting the Bluetooth microphone

Actual Result

Get a crash

Crash LOG

[Child 18585: Unnamed thread 0x189bfb5e0]: E/cubeb media/libcubeb/cubeb-coreaudio-rs/src/backend/mod.rs:648: Total input frames: 0
[Child 18585: Unnamed thread 0x189bfb5e0]: E/cubeb media/libcubeb/cubeb-coreaudio-rs/src/backend/mod.rs:673: (0x189bcec00) Device switching, pushed 512 frames of input silence.
[Child 18585: Unnamed thread 0x189bfb5e0]: E/cubeb media/libcubeb/cubeb-coreaudio-rs/src/backend/aggregate_device.rs:626: Destroyed aggregate device 215
[Child 18585: Unnamed thread 0x189bfb5e0]: E/cubeb media/libcubeb/cubeb-coreaudio-rs/src/backend/mod.rs:3262: AudioObjectRemovePropertyListener/input/kAudioDevicePropertyDataSource rv=560947818, device id=206
[Child 18585: Unnamed thread 0x189bfb5e0]: E/cubeb media/libcubeb/cubeb-coreaudio-rs/src/backend/mod.rs:3271: AudioObjectRemovePropertyListener/input/kAudioDevicePropertyDeviceIsAlive rv=560947818, device id=206
[Child 18585: Unnamed thread 0x189bfb5e0]: E/cubeb media/libcubeb/cubeb-coreaudio-rs/src/backend/mod.rs:3130: (0x189bcec00) Could not uninstall all device change listeners
Hit MOZ_CRASH(assertion failed: !uid.is_null()) at media/libcubeb/cubeb-coreaudio-rs/src/backend/aggregate_device.rs:360
#01: gkrust_shared::panic_hook::h5dc15dff43620b62[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x663adf8]
#02: core::ops::function::Fn::call::h7c9ddfea53d0c678[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x66382fc]
#03: std::panicking::rust_panic_with_hook::hddd286a9c773fc67[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x7cb8e51]
#04: std::panicking::begin_panic::h87e366fa5774bd0d[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x6bf5a1e]
#05: cubeb_coreaudio::backend::aggregate_device::AggregateDevice::set_sub_devices::he9efe51694d2b9ba[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x6bd5aff]
#06: cubeb_coreaudio::backend::aggregate_device::AggregateDevice::set_sub_devices_sync::ha4a1f6ad7dab4740[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x6bd54a4]
#07: cubeb_coreaudio::backend::aggregate_device::AggregateDevice::new::h288de4192ac012ed[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x6bd44a2]
#08: cubeb_coreaudio::backend::CoreStreamData::setup::h2a0aa64ce171eeb6[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x6bed26e]
#09: cubeb_coreaudio::backend::AudioUnitStream::reinit::h03fe423e7e616fef[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x6bf2048]
#10: cubeb_coreaudio::backend::AudioUnitStream::reinit_async::_$u7b$$u7b$closure$u7d$$u7d$::h992b8c3ee642f520[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x6bd824e]
#11: coreaudio_sys_utils::dispatch::create_closure_and_executor::closure_executer::hb320ad562f9835d4[/Users/cchang/Work/gecko/obj-x86_64-apple-darwin18.5.0/dist/NightlyDebug.app/Contents/MacOS/XUL +0x6bd72b6]
#12: _dispatch_client_callout[/usr/lib/system/libdispatch.dylib +0x363d]
#13: _dispatch_lane_serial_drain[/usr/lib/system/libdispatch.dylib +0x98e0]
#14: _dispatch_lane_invoke[/usr/lib/system/libdispatch.dylib +0xa396]
#15: _dispatch_workloop_worker_thread[/usr/lib/system/libdispatch.dylib +0x126ed]
#16: _pthread_wqthread[/usr/lib/system/libsystem_pthread.dylib +0x2611]
Attached file pull request on github

paul, can you review the changes on github. I'll import the changes to gecko later after it's approved.

Flags: needinfo?(padenot)
Flags: needinfo?(padenot)
Depends on: 1570446

The problem is solved by bug 1570446.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Summary: Crash when unplugging devices during a WebRTC meeting → Crash when unplugging non-default devices during a WebRTC meeting
Has Regression Range: --- → yes
Keywords: regression
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: