Subject: Re: bug#43610: IceCat segfault

From: Alex ter Weele <[email-masked]>
Date: Sun, 13 Dec 2020 13:19:36 -0500

raingloom <[email-masked]> writes:

> On Fri, 2 Oct 2020 00:57:39 +0200
> raingloom <[email-masked]> 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
      repository URL: https://git.savannah.gnu.org/git/guix.git
      branch: master
      commit: 07914def98ca0d148e3522466227304e45286786