Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 852848 - media-sound/pulseaudio-daemon-16-r4 crash with usb audio (works fine in 15.0-r3)
Summary: media-sound/pulseaudio-daemon-16-r4 crash with usb audio (works fine in 15.0-r3)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal critical (vote)
Assignee: Igor V. Kovalenko
URL:
Whiteboard:
Keywords: PATCH, PullRequest
Depends on:
Blocks:
 
Reported: 2022-06-17 22:18 UTC by Davyd McColl
Modified: 2022-06-18 11:34 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Davyd McColl 2022-06-17 22:18:09 UTC
Since the update to pulseaudio 16 (where the `pulseaudio` daemon now comes from the `pulseaudio-daemon` package), I've had a lot of PA crashes. After running in a console with --daemonize=false, I see messages like:

E: [alsa-sink-ALC1220 Analog] memblockq.c: Assertion 'bq->n_blocks == 0' failed at ../pulseaudio-16.0/src/pulsecore/memblockq.c:1006, function pa_memblockq_silence(). Aborting.

_or_

E: [alsa-sink-USB Audio] memblockq.c: Assertion 'bq->n_blocks == 0' failed at ../pulseaudio-16.0/src/pulsecore/memblockq.c:1006, function pa_memblockq_silence(). Aborting.

Downgrading to 15.0-r3, I see warnings that look related:
E: [alsa-sink-USB Audio] alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write.
E: [alsa-sink-USB Audio] alsa-sink.c: Most likely this is a bug in the ALSA driver 'snd_usb_audio'. Please report this issue to the ALSA developers.
E: [alsa-sink-USB Audio] alsa-sink.c: We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.

However, PA doesn't crash in this case - it just carries on. So it appears as if a warning has been elevated to a full-on bail-out/crash ):

The audio device being used is a pair of Corsair HS70 Pro headphones - and I've had no issue with them from day 1, until this PA update.

Reproducible: Always

Steps to Reproduce:
1. Start playing Diablo2 via WINE & have Discord open, connected to a voice-chat channel
2. Play a bit
3. Crash happens within 15 minutes, but can happen as early as 1 or 2 minutes in.
Actual Results:  
PA crashes & is restarted, but Discord and the game I'm WINE'ing both lose sound completely. I have to restart both.

Expected Results:  
PA shouldn't crash out.
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-06-17 22:35:24 UTC
Can you try https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/ee8bfb49adddd271d8a8cafa796c6f9fa84de48a.patch?

@igor: there's a few other crash fixes it looks like we might want to pick up too, not sure?
Comment 2 Larry the Git Cow gentoo-dev 2022-06-18 00:18:25 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3408c976d850bad9d19c1cdc25fbf0851cb9b22d

commit 3408c976d850bad9d19c1cdc25fbf0851cb9b22d
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2022-06-17 23:37:29 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2022-06-18 00:18:16 +0000

    media-sound/pulseaudio-daemon: Fix crash after combine-sink underrun
    
    Upstream commit ee8bfb49adddd271d8a8cafa796c6f9fa84de48a
    
    Closes: https://bugs.gentoo.org/852848
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 ...udio-16.0-fix-combine-sink-underrun-crash.patch | 72 ++++++++++++++++++++++
 .../pulseaudio-daemon-16.0-r5.ebuild               |  1 +
 2 files changed, 73 insertions(+)
Comment 3 Igor V. Kovalenko 2022-06-18 06:53:49 UTC
(In reply to Davyd McColl from comment #0)
> Since the update to pulseaudio 16 (where the `pulseaudio` daemon now comes
> from the `pulseaudio-daemon` package), I've had a lot of PA crashes. After
> running in a console with --daemonize=false, I see messages like:
> 
> E: [alsa-sink-ALC1220 Analog] memblockq.c: Assertion 'bq->n_blocks == 0'
> failed at ../pulseaudio-16.0/src/pulsecore/memblockq.c:1006, function
> pa_memblockq_silence(). Aborting.
> 
Could you please update (should pull pulseaudio-daemon-16.0-r5) and check if the issue is fixed for you?
Comment 4 Davyd McColl 2022-06-18 11:34:05 UTC
Thank you very much! I have built and will test extensively tonight (: