Subject: Re: bug#43420: icecat causes pulseaudio to crash

From: Nathan Dehnel <[email-masked]>
Date: Fri, 18 Sep 2020 00:55:55 -0500

Removing ~/.config/pulse fixed it, I think because it removed a config file
that was loading a couple of modules.

Try this:

1. start JACK1
2. pulseaudio -L module-jack-source -L module-jack-sink
3. open icecat and mess around with the seekbar

On Fri, Sep 18, 2020 at 12:21 AM Mark H Weaver <[email-masked]> wrote:

> Hi Nathan,
>
> Nathan Dehnel <[email-masked]> writes:
> > Pulseaudio is set to autospawn by default, which is maybe why it seems
> like
> > nothing is happening on your computer. Maybe try disabling autospawn and
> > try running pulse in a shell.
>
> In my previous tests, I ran pulseaudio from a shell, but I did not
> disable autospawn.  I've now done a second round of more careful tests.
>
> First, I disabled autospawn, ran pulseaudio from a shell capturing its
> output, and made sure it was the only pulseaudio server running.  I then
> performed the same tests that I described in my last email, using
> icecat-68.12.0-guix0-preview1 with a fresh profile.  I made sure that
> only one pulseaudio server was running, and that icecat was really
> talking to it.  These tests were done on a Guix system based on commit
> 098593e61d0e3ddd8b3dc2225301d6020bf9446b (Sep 7) of Guix's master
> branch.  I had two videos playing simultaneously, seeked around in the
> videos, switched tabs, etc, and my pulseaudio server did not crash.  Its
> output was only one line, printed during startup:
>
> --8<---------------cut here---------------start------------->8---
> E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed:
> org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not
> provided by any .service files
> --8<---------------cut here---------------end--------------->8---
>
> I'm not hitting the assertion failure that you are:
>
> --8<---------------cut here---------------start------------->8---
> E: [pulseaudio] module-stream-restore.c: Assertion
> 'pa_hashmap_put(u->dbus_entries, de->entry_name, de) == 0' failed at
> modules/module-stream-restore.c:1406, function subscribe_callback().
> Aborting.
> --8<---------------cut here---------------end--------------->8---
>
> Here's the failing assertion in its context:
>
>
> https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/blob/v13.0/src/modules/module-stream-restore.c#L1406
>
> I looked for reports of this assertion failing, and found this:
>
>   https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1267234
>
> In the third comment, someone reported experiencing crashes with the
> same assertion failure, and that removing their ~/.pulse fixed the
> problem:
>
>
> https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1267234/comments/3
>
> That was in 2014.  Since then, it looks like ~/.pulse has been moved,
> possibly to ~/.config/pulse.
>
> I also found an earlier report from 2012 of this assertion failing,
>
>   https://bugs.freedesktop.org/show_bug.cgi?id=44522
>
> and the brief summary is that fixing it involved making the code in
> module-stream-restore more robust in its handling of upgrades from an
> older version of a database.  I'm guessing that this refers to the
> database files in ~/.config/pulse, with the older location, still
> honored, being ~/.pulse.
>
> So, my next suggestion is to kill pulseaudio, delete (or moving out of
> the way) both ~/.pulse and ~/.config/pulse, restart it, and then see if
> you can still reproduce the problem.
>
> If you *can* still reproduce it, then it's time to provide much more
> detailed information about your system, any relevant customizations or
> oddities to your setup, whether you're running Guix on top of another
> system and if so which system, 'guix describe' output, the precise
> versions (and hashes) of pulseaudio and icecat, and precise instructions
> on how to reproduce the problem from a fresh icecat profile.
>
>      Thanks,
>        Mark
>