IceCat segfault

DoneSubmitted by raingloom.
Details
7 participants
  • Alex ter Weele
  • Ludovic Courtès
  • Maxim Cournoyer
  • Mark H Weaver
  • Mike Gerwitz
  • raingloom
  • Ricardo Wurmus
Owner
unassigned
Severity
normal
R
R
raingloom wrote on 25 Sep 2020 15:26
(name . Guix Bugs)(address . bug-guix@gnu.org)
20200925152609.104d0e10@riseup.net
Haven't had time to look deeper into it yet. It worked in my profile
from sept 11, it broke after pulling and upgrading yesterday.
Idk what my commit is because I'm using a private branch.
M
M
Mark H Weaver wrote on 25 Sep 2020 18:11
87r1qp96py.fsf@netris.org
Hi,

raingloom <raingloom@riseup.net> writes:
Toggle quote (4 lines)
> Haven't had time to look deeper into it yet. It worked in my profile
> from sept 11, it broke after pulling and upgrading yesterday.
> Idk what my commit is because I'm using a private branch.

On Sept 22, I pushed a major update of IceCat from 68.12.0 to 78.3.0:

commit c7011ff850420fdbe1319b3d218bd362f2f9d618
Author: Mark H Weaver <mhw@netris.org>
Date: Sun Sep 6 21:47:33 2020 -0400

gnu: icecat: Update to 78.3.0-guix0-preview1 [security-fixes].
Includes fixes for CVE-2020-15673, CVE-2020-15676, CVE-2020-15677, and
CVE-2020-15678.

[...]

More details would be helpful. For example, it's not clear from your
report whether it segfaults immediately on startup or sometime later,
whether a window appears, etc. Also, are you using Guix on top of a
foreign distro, or natively? Wayland or X?

It would also be useful to know how IceCat 78 behaves on your system
with a fresh profile. Try it by running "icecat -p", creating a new
profile from the profile manager window, and then starting icecat with
that new profile selected. If that works, it would then be useful to
try adding back any extensions that were installed in the profile that
crashed, and see if that makes a difference.

Thanks,
Mark
R
R
raingloom wrote on 26 Sep 2020 04:34
(name . Mark H Weaver)(address . mhw@netris.org)(address . 43610@debbugs.gnu.org)
20200926043425.7724956d@riseup.net
On Fri, 25 Sep 2020 12:11:10 -0400
Mark H Weaver <mhw@netris.org> wrote:

Toggle quote (35 lines)
> Hi,
>
> raingloom <raingloom@riseup.net> writes:
> > Haven't had time to look deeper into it yet. It worked in my profile
> > from sept 11, it broke after pulling and upgrading yesterday.
> > Idk what my commit is because I'm using a private branch.
>
> On Sept 22, I pushed a major update of IceCat from 68.12.0 to 78.3.0:
>
> commit c7011ff850420fdbe1319b3d218bd362f2f9d618
> Author: Mark H Weaver <mhw@netris.org>
> Date: Sun Sep 6 21:47:33 2020 -0400
>
> gnu: icecat: Update to 78.3.0-guix0-preview1 [security-fixes].
>
> Includes fixes for CVE-2020-15673, CVE-2020-15676, CVE-2020-15677,
> and CVE-2020-15678.
>
> [...]
>
> More details would be helpful. For example, it's not clear from your
> report whether it segfaults immediately on startup or sometime later,
> whether a window appears, etc. Also, are you using Guix on top of a
> foreign distro, or natively? Wayland or X?
>
> It would also be useful to know how IceCat 78 behaves on your system
> with a fresh profile. Try it by running "icecat -p", creating a new
> profile from the profile manager window, and then starting icecat with
> that new profile selected. If that works, it would then be useful to
> try adding back any extensions that were installed in the profile that
> crashed, and see if that makes a difference.
>
> Thanks,
> Mark

It crashed immediately without any visible activity.
It does start up properly with a fresh profile. I'll try to bisect the
addons list later.

Tbh this would be a good time to have a debug output for IceCat on hand.
M
M
Mark H Weaver wrote on 26 Sep 2020 20:05
(name . raingloom)(address . raingloom@riseup.net)(address . 43610@debbugs.gnu.org)
87blhs8lb7.fsf@netris.org
Hi,

raingloom <raingloom@riseup.net> writes:
Toggle quote (2 lines)
> It crashed immediately without any visible activity.

Okay.

Toggle quote (3 lines)
> It does start up properly with a fresh profile. I'll try to bisect the
> addons list later.

In the meantime, to start IceCat 78 with your existing profile but with
addons temporarily disabled, try running:

icecat -safe-mode

That should allow you to recover your existing bookmarks, history,
cookies, saved passwords, tabs, etc. Then you can try adding back your
preferred addons incrementally to find out which one is causing the
problem.

Toggle quote (2 lines)
> Tbh this would be a good time to have a debug output for IceCat on hand.

While I acknowledge that it might occasionally be useful in edge cases
like this, it would also dramatically increase the memory requirements
at build time. For what it's worth, in the ~6 years that I've been
maintaining the IceCat package in Guix, I don't recall being asked for a
debug output before now.

I'm particularly sensitive to the memory requirements at build time,
because I choose not to trust the build farm and therefore to build my
entire Guix system with GNOME from source code on a relatively old
Thinkpad X200 with only 4 GB of RAM. I've been doing this for many
years, and I'd like to enable other Guix users to do so if they wish.

My impression is that IceCat debug outputs would primarily useful to
people who are actively developing IceCat, in which case it makes more
sense to build it manually to allow incremental rebuilds after modifying
the source code.

If it turns out that there's more interest in IceCat debug outputs than
I've anticipated (others: please speak up if you need this!), I'm not
necessarily opposed to adding them, but someone with a more powerful
machine would need to take over maintenance of our IceCat package,
because I would be unable to locally test the official build.

What do you think? Do other people need IceCat 'debug' outputs?

Thanks,
Mark
R
R
raingloom wrote on 27 Sep 2020 07:49
(name . Mark H Weaver)(address . mhw@netris.org)(address . 43610@debbugs.gnu.org)
20200927074937.3b23c327@riseup.net
On Sat, 26 Sep 2020 14:05:53 -0400
Mark H Weaver <mhw@netris.org> wrote:

Toggle quote (20 lines)
> Hi,
>
> raingloom <raingloom@riseup.net> writes:
> > It crashed immediately without any visible activity.
>
> Okay.
>
> > It does start up properly with a fresh profile. I'll try to bisect
> > the addons list later.
>
> In the meantime, to start IceCat 78 with your existing profile but
> with addons temporarily disabled, try running:
>
> icecat -safe-mode
>
> That should allow you to recover your existing bookmarks, history,
> cookies, saved passwords, tabs, etc. Then you can try adding back
> your preferred addons incrementally to find out which one is causing
> the problem.

It still crashes with the -safe-mode flag. Luckily I keep most things
outside modern browsers, so it's not a huge loss. (For obvious reasons
I do not consider them reliable.)

Toggle quote (32 lines)
> > Tbh this would be a good time to have a debug output for IceCat on
> > hand.
>
> While I acknowledge that it might occasionally be useful in edge cases
> like this, it would also dramatically increase the memory requirements
> at build time. For what it's worth, in the ~6 years that I've been
> maintaining the IceCat package in Guix, I don't recall being asked
> for a debug output before now.
>
> I'm particularly sensitive to the memory requirements at build time,
> because I choose not to trust the build farm and therefore to build my
> entire Guix system with GNOME from source code on a relatively old
> Thinkpad X200 with only 4 GB of RAM. I've been doing this for many
> years, and I'd like to enable other Guix users to do so if they wish.
>
> My impression is that IceCat debug outputs would primarily useful to
> people who are actively developing IceCat, in which case it makes more
> sense to build it manually to allow incremental rebuilds after
> modifying the source code.
>
> If it turns out that there's more interest in IceCat debug outputs
> than I've anticipated (others: please speak up if you need this!),
> I'm not necessarily opposed to adding them, but someone with a more
> powerful machine would need to take over maintenance of our IceCat
> package, because I would be unable to locally test the official build.
>
> What do you think? Do other people need IceCat 'debug' outputs?
>
> Thanks,
> Mark


Huh, I was not aware that it increased build time memory requirements.
I assumed it just gets sent to the void in the 'strip phase, just like
it is in other packages.
Maybe feature flags could help with this in the future. Since
(hopefully) nothing depends on IceCat, the build farm could just build
it with debug symbols, and those who want to build it locally can
build it without them. But that's off topic for this thread.
Local builds are definitely cool. As a fellow 4 gigger/thinkpadder I
appreciate anything that lets me build things locally without 16+ gigs
of swap. (you might think that's an exaggeration, but then you haven't
tried to build Idris 2 with Idris 1.)
M
M
Mark H Weaver wrote on 27 Sep 2020 22:36
(name . raingloom)(address . raingloom@riseup.net)(address . 43610@debbugs.gnu.org)
87v9fz6jnk.fsf@netris.org
Hi,

raingloom <raingloom@riseup.net> writes:

Toggle quote (17 lines)
> On Sat, 26 Sep 2020 14:05:53 -0400
> Mark H Weaver <mhw@netris.org> wrote:
>
>> In the meantime, to start IceCat 78 with your existing profile but
>> with addons temporarily disabled, try running:
>>
>> icecat -safe-mode
>>
>> That should allow you to recover your existing bookmarks, history,
>> cookies, saved passwords, tabs, etc. Then you can try adding back
>> your preferred addons incrementally to find out which one is causing
>> the problem.
>
> It still crashes with the -safe-mode flag. Luckily I keep most things
> outside modern browsers, so it's not a huge loss. (For obvious reasons
> I do not consider them reliable.)

If you'd like to try another experiment, it would be interesting to know
if you're able to recover most of your old profile by running "icecat
-safe-mode -p", selecting your old profile, and clicking on the "Refresh
IceCat" button that is presented. That will reset all preferences to
the IceCat defaults, but might enable you to recover the things I listed
above.

Toggle quote (11 lines)
>> > Tbh this would be a good time to have a debug output for IceCat on
>> > hand.
>>
>> While I acknowledge that it might occasionally be useful in edge cases
>> like this, it would also dramatically increase the memory requirements
>> at build time. [...]
>
> Huh, I was not aware that it increased build time memory requirements.
> I assumed it just gets sent to the void in the 'strip phase, just like
> it is in other packages.

We currently pass "--disable-debug" and "--disable-debug-symbols" to
IceCat's configure script, which causes it to pass compiler flags that
disable generation of debug symbols during the build.

Toggle quote (5 lines)
> As a fellow 4 gigger/thinkpadder I
> appreciate anything that lets me build things locally without 16+ gigs
> of swap. (you might think that's an exaggeration, but then you haven't
> tried to build Idris 2 with Idris 1.)

I've actually tried (and failed) to build Idris 1 locally, so I can
sympathize :-/

Mark
M
M
Mike Gerwitz wrote on 1 Oct 2020 03:56
(name . Mark H Weaver)(address . mhw@netris.org)
875z7uvhe3.fsf@gnu.org
On Sat, Sep 26, 2020 at 14:05:53 -0400, Mark H Weaver wrote:
Toggle quote (6 lines)
> I'm particularly sensitive to the memory requirements at build time,
> because I choose not to trust the build farm and therefore to build my
> entire Guix system with GNOME from source code on a relatively old
> Thinkpad X200 with only 4 GB of RAM. I've been doing this for many
> years, and I'd like to enable other Guix users to do so if they wish.

As someone with the same system as you, I have appreciated this for
as long as I've used Guix. Thank you.

Toggle quote (5 lines)
> My impression is that IceCat debug outputs would primarily useful to
> people who are actively developing IceCat, in which case it makes more
> sense to build it manually to allow incremental rebuilds after modifying
> the source code.

I agree---I think it's best not to burden all users (that choose to or
have to build) in this case.

--
Mike Gerwitz
R
R
raingloom wrote on 2 Oct 2020 00:57
(name . Mark H Weaver)(address . mhw@netris.org)(address . 43610@debbugs.gnu.org)
20201002005739.4b7185eb@riseup.net
On Sun, 27 Sep 2020 16:36:52 -0400
Mark H Weaver <mhw@netris.org> wrote:

Toggle quote (28 lines)
> Hi,
>
> raingloom <raingloom@riseup.net> writes:
>
> > On Sat, 26 Sep 2020 14:05:53 -0400
> > Mark H Weaver <mhw@netris.org> wrote:
> >
> >> In the meantime, to start IceCat 78 with your existing profile but
> >> with addons temporarily disabled, try running:
> >>
> >> icecat -safe-mode
> >>
> >> That should allow you to recover your existing bookmarks, history,
> >> cookies, saved passwords, tabs, etc. Then you can try adding back
> >> your preferred addons incrementally to find out which one is
> >> causing the problem.
> >
> > It still crashes with the -safe-mode flag. Luckily I keep most
> > things outside modern browsers, so it's not a huge loss. (For
> > obvious reasons I do not consider them reliable.)
>
> If you'd like to try another experiment, it would be interesting to
> know if you're able to recover most of your old profile by running
> "icecat -safe-mode -p", selecting your old profile, and clicking on
> the "Refresh IceCat" button that is presented. That will reset all
> preferences to the IceCat defaults, but might enable you to recover
> the things I listed above.

What I tried was running the old IceCat and disabling every single
addon. It did not fix anything.
Gonna see if my about:config modifications are messing something up.

I hate these "modern" (transl.: google approved) browsers so fricking
much...
R
R
raingloom wrote on 2 Oct 2020 01:28
(address . 43610@debbugs.gnu.org)
20201002012849.42ae8392@riseup.net
On Fri, 2 Oct 2020 00:57:39 +0200
raingloom <raingloom@riseup.net> wrote:

Toggle quote (38 lines)
> On Sun, 27 Sep 2020 16:36:52 -0400
> Mark H Weaver <mhw@netris.org> wrote:
>
> > Hi,
> >
> > raingloom <raingloom@riseup.net> writes:
> >
> > > On Sat, 26 Sep 2020 14:05:53 -0400
> > > Mark H Weaver <mhw@netris.org> wrote:
> > >
> > >> In the meantime, to start IceCat 78 with your existing profile
> > >> but with addons temporarily disabled, try running:
> > >>
> > >> icecat -safe-mode
> > >>
> > >> That should allow you to recover your existing bookmarks,
> > >> history, cookies, saved passwords, tabs, etc. Then you can try
> > >> adding back your preferred addons incrementally to find out
> > >> which one is causing the problem.
> > >
> > > It still crashes with the -safe-mode flag. Luckily I keep most
> > > things outside modern browsers, so it's not a huge loss. (For
> > > obvious reasons I do not consider them reliable.)
> >
> > If you'd like to try another experiment, it would be interesting to
> > know if you're able to recover most of your old profile by running
> > "icecat -safe-mode -p", selecting your old profile, and clicking on
> > the "Refresh IceCat" button that is presented. That will reset all
> > preferences to the IceCat defaults, but might enable you to recover
> > the things I listed above.
>
> What I tried was running the old IceCat and disabling every single
> addon. It did not fix anything.
> Gonna see if my about:config modifications are messing something up.
>
> I hate these "modern" (transl.: google approved) browsers so fricking
> much...

Well, what ended up working was deleting a bunch of file from the
profile directory. No idea which deletion made it work and at this
point I just wanna crawl back to Netsurf.
Can't say I'd recommend this workaround to regular users, but if you
can guess what those files are, you should be safe.

Files and directories I deleted: (taken from ~/.local/share/Trash/files)

```
{513646f8-fb87-4135-a41e-4cf1d1ccccf2}
{74145f27-f039-47ce-a470-a662b129930a}
{9063c2e9-e07c-4c2c-9646-cfe7ca8d0498}
AlternateServices.2.txt
AlternateServices.txt
blocklist.xml
broadcast-listeners.json
{c2c003ee-bd69-42a2-b0e9-6f34222cb046}
{c607c8df-14a7-4f28-894f-29e8722976af}
cert_override.txt
compatibility.2.ini
compatibility.ini
containers.json
datareporting
{de89ec3b-0f2a-45af-aeec-931d16988f72}
{e4a8a97b-f2ed-450b-b12d-ee082ba24781}
enumerate_devices.txt
gmp
handlers.json
https-everywhere@eff.org
pkcs11.txt
prefs.js
SecurityPreloadState.txt
sessionCheckpoints.json
sessionstore.jsonlz4
shinigamieyes@shinigamieyes
SiteSecurityServiceState.txt
staged
storage.sqlite
storage-sync.sqlite
Telemetry.ShutdownTime.txt
times.json
TRRBlacklist.txt
wappalyzer@crunchlabz.com
weave
```
R
R
Ricardo Wurmus wrote on 9 Oct 2020 09:42
(address . 43610@debbugs.gnu.org)
87d01rzvzn.fsf@elephly.net
I have the same problem. Icecat segfaults right away without any window
appearing. “-safe-mode” does not make a difference, but with “-p” I’m
presented with the profile manager. I haven’t tried creating a new
profile yet, nor have I tried deleting files from my existing profile.

I’m using Gnome on Guix System. To be sure that it isn’t caused by a
known bug in how we packaged Gnome Shell, I unset LD_LIBRARY_PATH before
running icecat, but with no effect.

I see a segfault with the latest icecat-78.3.1-guix0-preview1 and with
the older 78.3.0-guix0-preview1. No segfault with
68.12.0-guix0-preview1.

--
Ricardo
R
R
Ricardo Wurmus wrote on 30 Nov 2020 21:06
(address . 43610@debbugs.gnu.org)
87ft4q8v9q.fsf@elephly.net
Ricardo Wurmus <rekado@elephly.net> writes:

Toggle quote (13 lines)
> I have the same problem. Icecat segfaults right away without any window
> appearing. “-safe-mode” does not make a difference, but with “-p” I’m
> presented with the profile manager. I haven’t tried creating a new
> profile yet, nor have I tried deleting files from my existing profile.
>
> I’m using Gnome on Guix System. To be sure that it isn’t caused by a
> known bug in how we packaged Gnome Shell, I unset LD_LIBRARY_PATH before
> running icecat, but with no effect.
>
> I see a segfault with the latest icecat-78.3.1-guix0-preview1 and with
> the older 78.3.0-guix0-preview1. No segfault with
> 68.12.0-guix0-preview1.

Starting the new Icecat with “icecat --migration” and telling it to
import the existing Icecat profile did the trick for me. I did not
delete anything from my existing profile.

It would certainly be nice if Icecat didn’t segfault when loading data
that it can in principle migrate, but that’s not actually a Guix bug I
think.

--
Ricardo
R
R
Ricardo Wurmus wrote on 30 Nov 2020 21:12
(address . 43610@debbugs.gnu.org)
87czzu8uyn.fsf@elephly.net
Ricardo Wurmus <rekado@elephly.net> writes:

Toggle quote (19 lines)
> Ricardo Wurmus <rekado@elephly.net> writes:
>
>> I have the same problem. Icecat segfaults right away without any window
>> appearing. “-safe-mode” does not make a difference, but with “-p” I’m
>> presented with the profile manager. I haven’t tried creating a new
>> profile yet, nor have I tried deleting files from my existing profile.
>>
>> I’m using Gnome on Guix System. To be sure that it isn’t caused by a
>> known bug in how we packaged Gnome Shell, I unset LD_LIBRARY_PATH before
>> running icecat, but with no effect.
>>
>> I see a segfault with the latest icecat-78.3.1-guix0-preview1 and with
>> the older 78.3.0-guix0-preview1. No segfault with
>> 68.12.0-guix0-preview1.
>
> Starting the new Icecat with “icecat --migration” and telling it to
> import the existing Icecat profile did the trick for me. I did not
> delete anything from my existing profile.

This is not a complete fix, though. Icecat goes straight back to
segfaulting when restarted. When I start it with “icecat --migration”
and import the profile (every time I start it) I can get past the
segfault. So, whatever it does there does not seem to be permanent.

--
Ricardo
A
A
Alex ter Weele wrote on 13 Dec 2020 19:19
(name . raingloom)(address . raingloom@riseup.net)(address . 43610@debbugs.gnu.org)
87czzda7rb.fsf@librem.i-did-not-set--mail-host-address--so-tickle-me
raingloom <raingloom@riseup.net> writes:

Toggle quote (9 lines)
> On Fri, 2 Oct 2020 00:57:39 +0200
> raingloom <raingloom@riseup.net> wrote:
>
> Well, what ended up working was deleting a bunch of file from the
> profile directory. No idea which deletion made it work and at this
> point I just wanna crawl back to Netsurf.
> Can't say I'd recommend this workaround to regular users, but if you
> can guess what those files are, you should be safe.

Thanks to raingloom, we know that deleting some parts of the profile can
work around the segfault. I set out to find the minimal part of my
profile that I could delete while still working around the
segfault.

All I had to delete was the line

user_pref("network.captive-portal-service.enabled", true);

from ~/.mozilla/icecat/$my-profile/prefs.js.

Methodology: I put my whole profile into a git repo, then deleted it file
by file with

for i in * ; do
rm $i
git commit -am "Remove $i"
done

then I used git bisect to find which file(s) had to be deleted before
icecat wouldn't segfault.

Once I had a set of files whose deletion avoided the segfault, I
minimized that set by "un"deleting them by git reverting the commits
that deleted them. Eventually I undeleted all the files in the set
except prefs.js.

I then bisected on the lines in prefs.js, this time manually. I found
that the deletion of just the network.captive-portal-service.enabled
pref is sufficient to avoid the segfault.

I tested this with icecat 78.4.0-guix0-preview1.

$ guix describe
Generation 318 Nov 12 2020 07:36:51 (current)
...
guix 07914de
branch: master
commit: 07914def98ca0d148e3522466227304e45286786
L
L
Ludovic Courtès wrote on 15 Dec 2020 12:24
(name . Alex ter Weele)(address . alex.ter.weele@gmail.com)
87zh2fmhwa.fsf@gnu.org
Hi Alex,

Alex ter Weele <alex.ter.weele@gmail.com> skribis:

Toggle quote (6 lines)
> All I had to delete was the line
>
> user_pref("network.captive-portal-service.enabled", true);
>
> from ~/.mozilla/icecat/$my-profile/prefs.js.

Good to know. Who could have guessed?

Toggle quote (11 lines)
> Methodology: I put my whole profile into a git repo, then deleted it file
> by file with
>
> for i in * ; do
> rm $i
> git commit -am "Remove $i"
> done
>
> then I used git bisect to find which file(s) had to be deleted before
> icecat wouldn't segfault.

Heh, smart!

Thanks for sharing your findings,
Ludo’.
M
M
Maxim Cournoyer wrote on 11 Jul 20:38 +0200
(name . Ludovic Courtès)(address . ludo@gnu.org)
8735f7cx6d.fsf@gmail.com
Hi,

Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (23 lines)
> Hi Alex,
>
> Alex ter Weele <alex.ter.weele@gmail.com> skribis:
>
>> All I had to delete was the line
>>
>> user_pref("network.captive-portal-service.enabled", true);
>>
>> from ~/.mozilla/icecat/$my-profile/prefs.js.
>
> Good to know. Who could have guessed?
>
>> Methodology: I put my whole profile into a git repo, then deleted it file
>> by file with
>>
>> for i in * ; do
>> rm $i
>> git commit -am "Remove $i"
>> done
>>
>> then I used git bisect to find which file(s) had to be deleted before
>> icecat wouldn't segfault.

It seems the problem had to do with problematic migration of an IceCat
profile between versions?

If so, I'd think that'd be an upstream rather than a Guix issue.
Closing, because the issue is very old, and the lack of activity on its
tracker suggests it hasn't reoccurred since.

Feel free to reopen otherwise.

Thanks,

Maxim
Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 43610@debbugs.gnu.org