Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 649540

Summary: www-client/firefox-52.6.0 - .../work/firefox-52.6.0esr/ff/dist/bin/xpcshell Assertion failure: !joinable(), at /var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/js/src/threading/Thread.h:122
Product: Gentoo Linux Reporter: tt_1 <herrtimson>
Component: Current packagesAssignee: Mozilla Gentoo Team <mozilla>
Status: RESOLVED WONTFIX    
Severity: normal CC: kaikaikai
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugzilla.mozilla.org/show_bug.cgi?id=1337263
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: build.log.gz
output of emerge --info
patch to fix --enable-optimize=-O2 and -fno-schedule-insns
updated patch for the eclass

Description tt_1 2018-03-04 07:31:17 UTC
Created attachment 522266 [details]
build.log.gz

This occured after I upgraded gcc to 6.4.0; upon an emerge -e world. The build fails in src_install with 

Executing /var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/ff/dist/bin/xpcshell -g /var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/ff/dist/bin/ -a /var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/ff/dist/bin/ -f /var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/toolkit/mozapps/installer/precompile_cache.js -e precompile_startupcache("resource://gre/");
Assertion failure: !joinable(), at /var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/js/src/threading/Thread.h:122
Traceback (most recent call last):
  File "/var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/toolkit/mozapps/installer/packager.py", line 415, in <module>
    main()
  File "/var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/toolkit/mozapps/installer/packager.py", line 409, in main
    args.source, gre_path, base)
  File "/var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/toolkit/mozapps/installer/packager.py", line 166, in precompile_cache
    errors.fatal('Error while running startup cache precompilation')
  File "/var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/python/mozbuild/mozpack/errors.py", line 103, in fatal
    self._handle(self.FATAL, msg)
  File "/var/tmp/portage/www-client/firefox-52.6.0/work/firefox-52.6.0esr/python/mozbuild/mozpack/errors.py", line 98, in _handle
    raise ErrorMessage(msg)
mozpack.errors.ErrorMessage: Error: Error while running startup cache precompilation


My useflags are these

[ebuild  N    ] www-client/firefox-52.6.0  USE="dbus eme-free gtk2 neon system-harfbuzz system-icu system-jpeg system-libevent system-sqlite -bindist -custom-cflags -custom-optimization -debug -gmp-autoupdate (-hardened) -hwaccel -jack -jemalloc (-pgo) -pulseaudio (-rust) (-selinux) -startup-notification (-system-cairo) -system-libvpx {-test} -wifi" L10N="de -ach -af -an -ar -as -ast -az -bg -bn-BD -bn-IN -br -bs -ca -cak -cs -cy -da -dsb -el -en-GB -en-ZA -eo -es-AR -es-CL -es-ES -es-MX -et -eu -fa -ff -fi -fr -fy -ga -gd -gl -gn -gu -he -hi -hr -hsb -hu -hy -id -is -it -ja -ka -kab -kk -km -kn -ko -lij -lt -lv -mai -mk -ml -mr -ms -nb -nl -nn -or -pa -pl -pt-BR -pt-PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv -ta -te -th -tr -uk -uz -vi -xh -zh-CN -zh-TW" 

compressed build.log is attached
Comment 1 tt_1 2018-03-04 07:32:17 UTC
Created attachment 522268 [details]
output of emerge --info
Comment 2 tt_1 2018-03-04 07:53:18 UTC
So I did a little bit of research and found one upstream bug linked above, but without further informations, and this bug against fedora: 

https://bugzilla.redhat.com/show_bug.cgi?id=1426850#c13

Which suggest to pass --enable-optimize="-g -O2 -fno-schedule-insns" during src_configure. I tried to set this via EXTRA_ECONF, but the eclass doesn't seem to accept arguments in this way: 

/etc/portage/env/www-client/firefox: line 7: -O2: command not found (line 7 is the line with the --enable-optimize command) 

I tried these two variants: 

EXTRA_ECONF="--enable-optimize="-g -O2 -fno-schedule-insns""
EXTRA_ECONF="'--enable-optimize="-g -O2 -fno-schedule-insns"'"

any idea how to pass it over to the build script instead?
Comment 3 tt_1 2018-03-07 08:02:50 UTC
Current workaround is to use gcc-5 for compilation of firefox. Can please someone asign this to the mozilla team, so that they know about this and can try to fix the --enable-optimize problem properly?
Comment 4 tt_1 2018-03-07 08:04:27 UTC
Ah, it is already asigned to mozilla. Need another cup of coffee :-)
Comment 5 tt_1 2018-03-09 01:08:34 UTC
Created attachment 523072 [details, diff]
patch to fix --enable-optimize=-O2 and -fno-schedule-insns

patch is a draft, it would need another conditional statement to activate --enable-optimize=-O2 for arm only when gcc-6 is used for compilation.
Comment 6 tt_1 2018-03-09 22:17:09 UTC
Created attachment 523194 [details, diff]
updated patch for the eclass

I updated it a bit to choose -O2 for arm only if gcc-6 is used. 

For the case of gcc-7 also being affected by the need of -O2, it should be covered by the lines before which enable it regardless of arch. 

Is it acceptable for the firefox maintainers? 
Do you want -fno-insns-schedule only for arm?
Comment 7 gabriel 2018-05-10 11:46:03 UTC
(In reply to tt_1 from comment #6)
> Created attachment 523194 [details, diff] [details, diff]
> updated patch for the eclass
> 
> I updated it a bit to choose -O2 for arm only if gcc-6 is used. 
> 
> For the case of gcc-7 also being affected by the need of -O2, it should be
> covered by the lines before which enable it regardless of arch. 

I was encountering this problem on firefox-52.7.4 and GCC 7.3.0, and this patch fixed it.
Comment 8 tt_1 2018-05-10 19:26:29 UTC
The patch for the eclass got commited to the overlay one or two days ago, and will eventually commited to the tree if there are no problems with testing it.
Comment 9 tt_1 2018-05-24 05:44:12 UTC
pullrequest: https://github.com/gentoo/gentoo/pull/8542
Comment 10 tt_1 2018-08-07 18:44:53 UTC
closing, firefox-60.2.0 is due to be released in a few days.