Closed
Bug 1399978
Opened 7 years ago
Closed 7 years ago
Crash in mozalloc_abort | abort | cubeb_pulse::capi::capi_init
Categories
(Core :: Audio/Video: cubeb, defect, P2)
Tracking
()
RESOLVED
FIXED
mozilla58
Tracking | Status | |
---|---|---|
firefox-esr52 | --- | unaffected |
firefox55 | --- | unaffected |
firefox56 | --- | unaffected |
firefox57 | --- | fixed |
firefox58 | --- | fixed |
People
(Reporter: mccr8, Assigned: u480271)
References
Details
(Keywords: crash)
Crash Data
Attachments
(2 files, 1 obsolete file)
59 bytes,
text/x-review-board-request
|
kinetik
:
review+
|
Details |
12.00 KB,
patch
|
kinetik
:
review+
ritu
:
approval-mozilla-beta+
|
Details | Diff | Splinter Review |
This bug was filed from the Socorro interface and is report bp-3338f41c-5b84-4e50-a71c-f0d660170913. ============================================================= This is the number 3 top crash on Linux Nightly for 9-13, but the crashes are only from a couple of different installations. These all are Rust panics, on the assert "assertion failed: ctx.default_sink_info.is_some()". While there is a surge of these crashes on 9-13, I also see a few in the last week on a build from 8-17.
Comment 1•7 years ago
|
||
Dan -- I believe this is your area. Can you take this?
Rank: 15
Flags: needinfo?(dglastonbury)
Priority: -- → P2
What happened that we suddenly get that failure?!
Flags: needinfo?(dglastonbury)
This assert is firing because it's likely the machine doesn't have any pulse audio sinks. I reproduced the behaviour on my local machine by removing all sinks: $ pacmd unload-module 6 { Disable ALSA } $ pacmd unload-module 14 { Disable ensure sink } $ pacmd list-sinks 0 sink(s) available. $ ./test_devices Running main() from gtest_main.cc [==========] Running 2 tests from 1 test case. [----------] Global test environment set-up. [----------] 2 tests from cubeb [ RUN ] cubeb.destroy_default_collection test_devices: /home/djg/Mozilla/cubeb/src/cubeb_pulse.c:633: pulse_init: Assertion `ctx->default_sink_info' failed. [1] 32214 abort (core dumped) ./test_devices This is the same assert in the C version of cubeb's pulse audio backend. I've reviewed the rust version and it's safe to remove the assert. Rust forces handling this case and cubeb will return errors instead of dummy values or crashing.
Comment hidden (mozreview-request) |
Comment 5•7 years ago
|
||
mozreview-review |
Comment on attachment 8911673 [details] Bug 1399978 - Update cubeb-pulse-rs to git commit 2e22e53. https://reviewboard.mozilla.org/r/183070/#review188262
Attachment #8911673 -
Flags: review?(kinetik) → review+
Comment hidden (mozreview-request) |
Pushed by dglastonbury@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4d35361e1aec Update cubeb-pulse-rs to git commit 2e22e53. r=kinetik
Comment 10•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/4d35361e1aec
Status: NEW → RESOLVED
Closed: 7 years ago
status-firefox58:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
Comment 11•7 years ago
|
||
Is cubeb-pulse-rs Nightly-only at the moment?
status-firefox55:
--- → unaffected
status-firefox56:
--- → unaffected
status-firefox57:
--- → affected
status-firefox-esr52:
--- → unaffected
Flags: needinfo?(dglastonbury)
Assignee | ||
Comment 12•7 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #11) > Is cubeb-pulse-rs Nightly-only at the moment? Yes: http://searchfox.org/mozilla-central/source/media/libcubeb/src/cubeb.c#169 But it issue exists in the C version of cubeb_pulse. Do we want to uplift cubeb to all the old versions?
Flags: needinfo?(dglastonbury)
Assignee | ||
Comment 13•7 years ago
|
||
Matthew, should we apply the cubeb_pulse.c fixes as a patch in gecko?
Flags: needinfo?(kinetik)
Comment 14•7 years ago
|
||
(In reply to Dan Glastonbury :kamidphish from comment #13) > Matthew, should we apply the cubeb_pulse.c fixes as a patch in gecko? Given the same assert has been present in cubeb_pulse for a long time, it's weird this was suddenly a top crash now. But it seems worth uplifting. Fixes a crash and seems fairly safe.
Flags: needinfo?(kinetik)
Comment 15•7 years ago
|
||
Is there a different signature for the C version of the crashes? Because all the reports I'm seeing on crash-stats are from Nightly builds only (57a1/58a1).
Assignee | ||
Comment 16•7 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #15) > Is there a different signature for the C version of the crashes? Because all > the reports I'm seeing on crash-stats are from Nightly builds only > (57a1/58a1). The rust version is supposed to be a direct port of the C version. Looking at the stack we hit the assert and pulse audio doesn't have any output devices. But I can't find a corresponding signature for pulse_init. That means it wasn't being reported correctly in the C version or there's a subtle difference in the rust version. There are these mysterious crashes[1] (top 3) that are reported inside libpulsecommon.so and start from cubeb_init. There's something a bit odd with the stacks that there are no frames for pulse_init or below. Perhaps these are the equivalent crash? [1] https://crash-stats.mozilla.com/search/?signature=~pulse&platform=Linux&date=%3E%3D2017-03-29T01%3A11%3A26.000Z&date=%3C2017-07-12T01%3A11%3A00.000Z&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature
Assignee | ||
Comment 17•7 years ago
|
||
Actually, here's the same assert happening in the C version of cubeb_pulse. (Took me a while to work out how to use the search interface) https://crash-stats.mozilla.com/search/?proto_signature=~pulse_init&reason=%3DSIGABRT&platform=Linux&date=%3E%3D2017-03-29T05%3A49%3A10.000Z&date=%3C2017-06-12T05%3A49%3A00.000Z&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature I found reports for 57 too. I'd like to nominate that we uplift the fix to the C code to all relevant firefox versions. (Should we open a new bug for that?)
Flags: needinfo?(ryanvm)
Comment 18•7 years ago
|
||
If it's the same root problem, I think attaching a branch patch here and requesting approval on it would be fine.
Flags: needinfo?(ryanvm)
Updated•7 years ago
|
Flags: needinfo?(dglastonbury)
Assignee | ||
Comment 19•7 years ago
|
||
Ported pulse_audio only fix to stop cubeb asserting if the machine is configured without any audio sinks. MozReview-Commit-ID: ATaAfnJ6Yfa
Assignee | ||
Comment 20•7 years ago
|
||
Ported pulse_audio only fix to stop cubeb asserting if the machine is configured without any audio sinks. MozReview-Commit-ID: ATaAfnJ6Yfa
Attachment #8916469 -
Attachment is obsolete: true
Assignee | ||
Comment 21•7 years ago
|
||
Comment on attachment 8916470 [details] [diff] [review] Port cubeb_pulse.c fix for startup assert. Approval Request Comment [Feature/Bug causing the regression]: Bug 1399978 [User impact if declined]: FF Startup crash if PulseAudio has no output sinks. [Is this code covered by automated tests?]: Y [Has the fix been verified in Nightly?]: Y [Needs manual test from QE? If yes, steps to reproduce]: [List of other uplifts needed for the feature/fix]: [Is the change risky?]: No [Why is the change risky/not risky?]: This patch removes an unnecessary assertion and improves handling the case which caused the assertion to fire. It is a small amount of code that is easy to inspect to verify in addition to local and automated testing. [String changes made/needed]: None
Flags: needinfo?(dglastonbury)
Attachment #8916470 -
Flags: approval-mozilla-beta?
Updated•7 years ago
|
Attachment #8916470 -
Flags: review+
Comment on attachment 8916470 [details] [diff] [review] Port cubeb_pulse.c fix for startup assert. Fixes a new crash in 57, beta57+
Attachment #8916470 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment 23•7 years ago
|
||
bugherder uplift |
https://hg.mozilla.org/releases/mozilla-beta/rev/fe33835ad5f9
Comment 24•7 years ago
|
||
(In reply to Dan Glastonbury :kamidphish from comment #21) > [Is this code covered by automated tests?]: Y > [Has the fix been verified in Nightly?]: Y > [Needs manual test from QE? If yes, steps to reproduce]: Setting qe-verify- based on Dan's assessment on manual testing needs and the fact that this fix has automated coverage.
Flags: qe-verify-
You need to log in
before you can comment on or make changes to this bug.
Description
•