Closed Bug 1375873 Opened 7 years ago Closed 7 years ago

all tabs crash in nightly (thread '<unnamed>' panicked at 'SinkInfo contains invalid flags')

Categories

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

56 Branch
defect

Tracking

()

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: pege, Assigned: u480271)

References

Details

Attachments

(2 files)

Attached file full_terminal_output
User Agent: Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0 Build ID: 20100101 Steps to reproduce: open the browser or a new tab Actual results: tab crashes: thread '<unnamed>' panicked at 'SinkInfo contains invalid flags', /checkout/src/libcore/option.rs:794 stack backtrace: 0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace 1: std::panicking::default_hook::{{closure}} 2: std::panicking::rust_panic_with_hook 3: std::panicking::begin_panic 4: std::panicking::begin_panic_fmt 5: core::panicking::panic_fmt 6: core::option::expect_failed 7: pulse::context::Context::get_sink_info_by_name::wrapped 8: <unknown> 9: <unknown> 10: pa_pdispatch_run 11: <unknown> 12: <unknown> 13: <unknown> 14: <unknown> 15: <unknown> 16: pa_mainloop_dispatch 17: pa_mainloop_iterate 18: pa_mainloop_run 19: <unknown> 20: <unknown> 21: start_thread 22: __clone Redirecting call to abort() to mozalloc_abort Expected results: tab shouldn't crash
Forgot to mention the platform: peter@ivy:~/src/mozilla-central$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 9.0 (stretch) Release: 9.0 Codename: stretch peter@ivy:~/src/mozilla-central$ uname -a Linux ivy 4.11.6 #117 SMP PREEMPT Sat Jun 17 17:44:45 CEST 2017 x86_64 GNU/Linux peter@pg:~/src/mozilla-central$ dpkg -l '*pulse*' |grep ii ii libpulse-mainloop-glib0:amd64 10.0-1 amd64 PulseAudio client libraries (glib support) ii libpulse0:amd64 10.0-1 amd64 PulseAudio client libraries ii libpulsedsp:amd64 10.0-1 amd64 PulseAudio OSS pre-load library ii pulseaudio 10.0-1 amd64 PulseAudio sound server ii pulseaudio-module-gconf 10.0-1 amd64 GConf module for PulseAudio sound server ii pulseaudio-utils 10.0-1 amd64 Command line tools for the PulseAudio sound server Tried to reproduce the issue on my home machine which is powered by the same OS, no luck so far.
I also just encountered this behavior on my work laptop. > lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: Fedora Description: Fedora release 25 (Twenty Five) Release: 25 Codename: TwentyFive > dnf list installed '*pulse*' Last metadata expiration check: 9 days, 0:12:22 ago on Wed Jun 14 16:01:16 2017. Installed Packages alsa-plugins-pulseaudio.x86_64 1.1.1-1.fc25 @fedora mpg123-plugins-pulseaudio.x86_64 1.23.8-4.fc25 @updates pulseaudio.x86_64 10.0-2.fc25 @updates pulseaudio-debuginfo.x86_64 9.0-1.fc25 @fedora-debuginfo pulseaudio-gdm-hooks.x86_64 10.0-2.fc25 @updates pulseaudio-libs.i686 10.0-2.fc25 @updates pulseaudio-libs.x86_64 10.0-2.fc25 @updates pulseaudio-libs-devel.x86_64 10.0-2.fc25 @updates pulseaudio-libs-glib2.x86_64 10.0-2.fc25 @updates pulseaudio-module-bluetooth.x86_64 10.0-2.fc25 @updates pulseaudio-module-x11.x86_64 10.0-2.fc25 @updates pulseaudio-utils.x86_64 10.0-2.fc25 @updates
I took a short look at the code, the thread appears to panic in Context::new() [1]. I'm not an expert but just based on the names of the flags in SinkFlags::try_from(), I'd say the wrong flags are used. I believe the pa_sink_flags [3] is what is needed (just based on the name SinkFlags) and not pa_source_flags. The two sets of flags are mostly overlapping with exception of PA_SINK_SET_FORMATS with value 0x0100U [5] where no there is no equivalent for PA_SOURCE_* [6]. I guess this flag is set on my work machine causing the error. The code was introduced by 5ff54dc9d0ad [7] / bug 1374494. [1]: https://hg.mozilla.org/mozilla-central/file/tip/media/libcubeb/cubeb-pulse-rs/src/backend/context.rs#l123 [2]: https://hg.mozilla.org/mozilla-central/file/tip/media/libcubeb/cubeb-pulse-rs/pulse-rs/src/lib.rs#l414 [3]: https://www.freedesktop.org/software/pulseaudio/doxygen/def_8h.html#a20e0a15bebf78a29893f3b73ef7dadc0 [4]: https://www.freedesktop.org/software/pulseaudio/doxygen/def_8h.html#a6102010fffc6e49f6d378263e7b474b0 [5]: https://www.freedesktop.org/software/pulseaudio/doxygen/def_8h.html#a20e0a15bebf78a29893f3b73ef7dadc0ad3f643f079f57e16e3b272c948956ba4 [6]: https://www.freedesktop.org/software/pulseaudio/doxygen/def_8h.html#a6102010fffc6e49f6d378263e7b474b0 [7]: https://hg.mozilla.org/mozilla-central/rev/5ff54dc9d0ad
Component: Untriaged → Audio/Video: cubeb
Product: Firefox → Core
This is happening to me with today's 64-bit Nightly too, on Fedora 25 KDE spin. Will Mozilla patch its local libcubeb or must the fix wait for a patch to https://github.com/djg/cubeb-pulse-rs/blob/dev/pulse-rs/src/lib.rs ? Should this bug and/or review be assigned to Dan Glastonbury:kamidphish aka @djg on GitHub? I took the liberty of cc'ing him on this bug. (Cool to see more Rust in Firefox O_O )
Assignee: nobody → dglastonbury
Depends on: 1376000
Comment on attachment 8880989 [details] Bug 1375873 - fix panic in cubeb caused by PA_SINK_SET_FORMATS flag https://reviewboard.mozilla.org/r/152352/#review157414 Thanks. This is the correct fix for SinkFlags::try_from(). I had the change locally ready to upstream, but we can take this.
Attachment #8880989 - Flags: review+
Comment on attachment 8880989 [details] Bug 1375873 - fix panic in cubeb caused by PA_SINK_SET_FORMATS flag https://reviewboard.mozilla.org/r/152352/#review157416
Pushed by dglastonbury@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b52b0b9cd722 fix panic in cubeb caused by PA_SINK_SET_FORMATS flag r=kamidphish
Rank: 10
Priority: -- → P1
Status: UNCONFIRMED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: