icecat causes pulseaudio to crash

  • Done
  • quality assurance status badge
Details
3 participants
  • Maxim Cournoyer
  • Mark H Weaver
  • Nathan Dehnel
Owner
unassigned
Submitted by
Nathan Dehnel
Severity
normal
N
N
Nathan Dehnel wrote on 15 Sep 2020 14:16
(address . bug-guix@gnu.org)
CAEEhgEt3vMm4Eu-wiecdTGeurvrbLWwrZ14GaxtH5rvgh_ErLQ@mail.gmail.com
So...playing a youtube video in icecat causes pulse to crash. You can
play one video and it works, but it crashes if you open another tab or
page with a video in it. Also skipping around the seekbar causes it to
crash.

bash-5.0$ pulseaudio
W: [pulseaudio] pid.c: Stale PID file, overwriting.
E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed:
org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not
provided by any .service files
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.

Chromium and mpv do not cause pulse to crash.
M
M
Mark H Weaver wrote on 16 Sep 2020 11:12
87imce9jah.fsf@netris.org
Nathan Dehnel <ncdehnel@gmail.com> writes:

Toggle quote (15 lines)
> So...playing a youtube video in icecat causes pulse to crash. You can
> play one video and it works, but it crashes if you open another tab or
> page with a video in it. Also skipping around the seekbar causes it to
> crash.
>
> bash-5.0$ pulseaudio
> W: [pulseaudio] pid.c: Stale PID file, overwriting.
> E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed:
> org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not
> provided by any .service files
> 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.

Unfortunately, I was unable to reproduce this on my x86_64 Guix system.

Starting with a fresh profile in icecat-68.12.0-guix0-preview1, I tried
bundled 'ViewTube' extension (as happens with the default IceCat
configuration), and later with LibreJS and ViewTube disabled to test
Youtube's Javascript player. I tried opening another video in another
tab while playing the first video, seeking around the file, etc, but
pulseaudio did not crash for me.

Is anyone else able to reproduce this?

Nathan: Would you like to try running "icecat -no-remote -p" and
creating a fresh new profile for testing purposes, and seeing if you can
reproduce the pulseaudio crash while using the new profile? If not,
maybe try adding back your usual extensions to the test profile and
seeing if that makes a difference?

Mark
N
N
Nathan Dehnel wrote on 17 Sep 2020 10:49
(name . Mark H Weaver)(address . mhw@netris.org)(address . 43420@debbugs.gnu.org)
CAEEhgEuG=rxLm+M2QmJtfJ1BRnynwsMkpes0QZ3k+NpRONt0Hg@mail.gmail.com
Actually, it crashes even if I unload module-jack-source and
module-jack-sink.

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.

On Wed, Sep 16, 2020 at 4:13 AM Mark H Weaver <mhw@netris.org> wrote:

Toggle quote (37 lines)
> Nathan Dehnel <ncdehnel@gmail.com> writes:
>
> > So...playing a youtube video in icecat causes pulse to crash. You can
> > play one video and it works, but it crashes if you open another tab or
> > page with a video in it. Also skipping around the seekbar causes it to
> > crash.
> >
> > bash-5.0$ pulseaudio
> > W: [pulseaudio] pid.c: Stale PID file, overwriting.
> > E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed:
> > org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not
> > provided by any .service files
> > 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.
>
> Unfortunately, I was unable to reproduce this on my x86_64 Guix system.
>
> Starting with a fresh profile in icecat-68.12.0-guix0-preview1, I tried
> watching 'https://www.youtube.com/watch?v=x6U2Un5kEdI', first using the
> bundled 'ViewTube' extension (as happens with the default IceCat
> configuration), and later with LibreJS and ViewTube disabled to test
> Youtube's Javascript player. I tried opening another video in another
> tab while playing the first video, seeking around the file, etc, but
> pulseaudio did not crash for me.
>
> Is anyone else able to reproduce this?
>
> Nathan: Would you like to try running "icecat -no-remote -p" and
> creating a fresh new profile for testing purposes, and seeing if you can
> reproduce the pulseaudio crash while using the new profile? If not,
> maybe try adding back your usual extensions to the test profile and
> seeing if that makes a difference?
>
> Mark
>
Attachment: file
M
M
Mark H Weaver wrote on 18 Sep 2020 07:20
(name . Nathan Dehnel)(address . ncdehnel@gmail.com)(address . 43420@debbugs.gnu.org)
87d02j8xtz.fsf@netris.org
Hi Nathan,

Nathan Dehnel <ncdehnel@gmail.com> writes:
Toggle quote (4 lines)
> 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:

Toggle snippet (3 lines)
E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files

I'm not hitting the assertion failure that you are:

Toggle snippet (4 lines)
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.

Here's the failing assertion in its context:


I looked for reports of this assertion failing, and found this:


In the third comment, someone reported experiencing crashes with the
same assertion failure, and that removing their ~/.pulse fixed the
problem:


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,


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
N
N
Nathan Dehnel wrote on 18 Sep 2020 07:55
(name . Mark H Weaver)(address . mhw@netris.org)(address . 43420@debbugs.gnu.org)
CAEEhgEuzq1LPQ5FqeYRhkvf5FR8hfKSf5NXt=g83=4LgfX9rRA@mail.gmail.com
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 <mhw@netris.org> wrote:

Toggle quote (80 lines)
> Hi Nathan,
>
> Nathan Dehnel <ncdehnel@gmail.com> 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
>
Attachment: file
M
M
Mark H Weaver wrote on 18 Sep 2020 20:09
(name . Nathan Dehnel)(address . ncdehnel@gmail.com)(address . 43420@debbugs.gnu.org)
871riz7y8v.fsf@netris.org
Hi Nathan,

Nathan Dehnel <ncdehnel@gmail.com> writes:
Toggle quote (2 lines)
> Removing ~/.config/pulse fixed it,

That's good!

Toggle quote (3 lines)
> I think because it removed a config file that was loading a couple of
> modules.

Can you verify that hypothesis by adding back the config file(s),
without any database files, restarting pulseaudio and trying again? If
it crashes, please show us the exact contents of the config file(s) and
the pulseaudio output.

My hypothesis is that it was the database files in ~/.config/pulse/ that
caused the crash, in which case adding config files should not matter.

Toggle quote (6 lines)
> Try this:
>
> 1. start JACK1
> 2. pulseaudio -L module-jack-source -L module-jack-sink
> 3. open icecat and mess around with the seekbar

How about you try it first? Until my hypothesis is disproven, I would
prefer not to spend more time on this.

Thanks,
Mark
M
M
Maxim Cournoyer wrote on 20 Jan 04:10 +0100
(name . Nathan Dehnel)(address . ncdehnel@gmail.com)
87a5p0itsi.fsf@gmail.com
Hi Nathan,

Mark H Weaver <mhw@netris.org> writes:

Toggle quote (27 lines)
> Hi Nathan,
>
> Nathan Dehnel <ncdehnel@gmail.com> writes:
>> Removing ~/.config/pulse fixed it,
>
> That's good!
>
>> I think because it removed a config file that was loading a couple of
>> modules.
>
> Can you verify that hypothesis by adding back the config file(s),
> without any database files, restarting pulseaudio and trying again? If
> it crashes, please show us the exact contents of the config file(s) and
> the pulseaudio output.
>
> My hypothesis is that it was the database files in ~/.config/pulse/ that
> caused the crash, in which case adding config files should not matter.
>
>> Try this:
>>
>> 1. start JACK1
>> 2. pulseaudio -L module-jack-source -L module-jack-sink
>> 3. open icecat and mess around with the seekbar
>
> How about you try it first? Until my hypothesis is disproven, I would
> prefer not to spend more time on this.

It's been 4 years. Should we close this issue? It also seems like
something that should be brought to Firefox upstream, if it still
exists.

--
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 20 Jan 04:10 +0100
control message for bug #43420
(address . control@debbugs.gnu.org)
878r4kits4.fsf@gmail.com
tags 43420 + moreinfo
quit
N
N
Nathan Dehnel wrote on 20 Jan 05:31 +0100
Re: bug#43420: icecat causes pulseaudio to crash
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
CAEEhgEud8q6ieqoTLh2yjXX6FCNUcYWuc0EnSzyLpWRQnfu2HQ@mail.gmail.com
Yeah probably, I just switched to pipewire

On Fri, Jan 19, 2024, 21:10 Maxim Cournoyer <maxim.cournoyer@gmail.com>
wrote:

Toggle quote (39 lines)
> Hi Nathan,
>
> Mark H Weaver <mhw@netris.org> writes:
>
> > Hi Nathan,
> >
> > Nathan Dehnel <ncdehnel@gmail.com> writes:
> >> Removing ~/.config/pulse fixed it,
> >
> > That's good!
> >
> >> I think because it removed a config file that was loading a couple of
> >> modules.
> >
> > Can you verify that hypothesis by adding back the config file(s),
> > without any database files, restarting pulseaudio and trying again? If
> > it crashes, please show us the exact contents of the config file(s) and
> > the pulseaudio output.
> >
> > My hypothesis is that it was the database files in ~/.config/pulse/ that
> > caused the crash, in which case adding config files should not matter.
> >
> >> Try this:
> >>
> >> 1. start JACK1
> >> 2. pulseaudio -L module-jack-source -L module-jack-sink
> >> 3. open icecat and mess around with the seekbar
> >
> > How about you try it first? Until my hypothesis is disproven, I would
> > prefer not to spend more time on this.
>
> It's been 4 years. Should we close this issue? It also seems like
> something that should be brought to Firefox upstream, if it still
> exists.
>
> --
> Thanks,
> Maxim
>
Attachment: file
M
M
Maxim Cournoyer wrote on 20 Jan 19:35 +0100
(name . Nathan Dehnel)(address . ncdehnel@gmail.com)
871qabhmz8.fsf@gmail.com
tags 43420 + unreproducible
quit

Hi,

Nathan Dehnel <ncdehnel@gmail.com> writes:

Toggle quote (2 lines)
> Yeah probably, I just switched to pipewire

Alright, closing.

--
Thanks,
Maxim
?