Bug 202218 - [crash] www/firefox 40.0,1 crash during startup
Summary: [crash] www/firefox 40.0,1 crash during startup
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-gecko (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-10 12:05 UTC by Kurt Jaeger
Modified: 2015-08-13 11:48 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (gecko)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kurt Jaeger freebsd_committer freebsd_triage 2015-08-10 12:05:34 UTC
For the last few weeks, different versions of firefox (38, 39, 40) crashed
when starting, on 10.1p16 amd64 systems.

http://opsec.eu/backup/showconfig and
http://opsec.eu/backup/crash2.tgz

A lot of directories and files are created and then it dies. The .tgz
has the script of the startup and the directories and the core dump.
Comment 1 Jan Beich freebsd_committer freebsd_triage 2015-08-11 08:50:01 UTC
> Assertion failure: leafname.Length() > 4, at /wrkdirs/usr/ports/www/firefox/work/mozilla-release/dom/media/gmp/GMPParent.cpp:111

So, DEBUG build hints at an issue that maybe caused by files/patch-system-openh264. The patch needs to be reworked to use MOZ_GMP_PATH like Gentoo. Can you try removing it?

I can't test DEBUG option as it takes too much time to build due to memory thrashing.
Comment 2 Jan Beich freebsd_committer freebsd_triage 2015-08-11 09:10:01 UTC
I wonder if yet another online backtracing facility (unrelated to libexecinfo and MOZ_CANARY) is broken on FreeBSD. It doesn't show anything GMP related despite hitting an assert.

Also, core(5) files are useless without corresponding binary as the ports framework doesn't force deterministic builds by default yet. I haven't found firefox DEBUG packages inside crash2.tgz.
Comment 3 Kurt Jaeger freebsd_committer freebsd_triage 2015-08-11 09:45:16 UTC
(In reply to Jan Beich from comment #1)
Yes, removing that patch allows firefox to start.
Comment 4 Kurt Jaeger freebsd_committer freebsd_triage 2015-08-11 10:47:26 UTC
(In reply to Jan Beich from comment #1)
If I run the firefox on the build host using ssh -X -Y, this happens:

process 30385: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/etc/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
  D-Bus not compiled with backtrace support so unable to print a backtrace
Redirecting call to abort() to mozalloc_abort

Segmentation fault (core dumped)

The same package works on the desktop where it's supposed to run.
Ah: if /usr/local/etc/rc.d/dbus is not started, this is the warning...
Comment 5 commit-hook freebsd_committer freebsd_triage 2015-08-11 13:23:26 UTC
A commit references this bug:

Author: jbeich
Date: Tue Aug 11 13:22:58 UTC 2015
New revision: 393941
URL: https://svnweb.freebsd.org/changeset/ports/393941

Log:
  Switch OpenH264 plugin to use environment variable

  files/patch-system-openh264 causes patch churn on updates and hits
  assertion with DEBUG=on[1]. Rework to use MOZ_GMP_PATH instead.

  While here populate Last Updated field to avoid falling back to Epoch start
  and disable Automatic Updates in an unlikely case of
  - Cisco & Mozilla providing prebuilt version for FreeBSD
  - Firefox running with root priveleges i.e., write permission under /usr/local

  PR:		202218 [1]
  Reported by:	kib, pi [1]
  Inspired by:	Gentoo
  MFH:		2015Q3

Changes:
  head/mail/thunderbird/Makefile
  head/mail/thunderbird/files/patch-mail-app-nsMailApp.cpp
  head/mail/thunderbird/files/patch-system-openh264
  head/multimedia/openh264/Makefile
  head/multimedia/openh264/files/gmpopenh264.js.in
  head/www/firefox/Makefile
  head/www/firefox/files/patch-browser-app-nsBrowserApp.cpp
  head/www/firefox/files/patch-system-openh264
  head/www/firefox-esr/Makefile
  head/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp
  head/www/firefox-esr/files/patch-system-openh264
  head/www/libxul/Makefile
  head/www/libxul/files/patch-system-openh264
  head/www/libxul/files/patch-xulrunner-stub-nsXULStub.cpp
  head/www/seamonkey/Makefile
  head/www/seamonkey/files/patch-suite-app-nsSuiteApp.cpp
  head/www/seamonkey/files/patch-system-openh264
Comment 6 Jan Beich freebsd_committer freebsd_triage 2015-08-11 14:17:19 UTC
Thanks. Committed.

(In reply to Kurt Jaeger from comment #4)
> process 30385: D-Bus library appears to be incorrectly set up; failed to read machine uuid:
> Failed to open "/etc/machine-id": No such file or directory
> See the manual page for dbus-uuidgen to correct this issue.

Likely non-gecko@ issue that also affects linux-firefox, see bug 200190.

  $ linux-firefox -no-remote -P test -private http://freebsd.org
  process 56116: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory
  See the manual page for dbus-uuidgen to correct this issue.
    D-Bus not built with -rdynamic so unable to print a backtrace
  Redirecting call to abort() to mozalloc_abort

devel/dbus and devel/linux-*-dbus-libs need to provide static UUID in the
places DBus expects them to when its daemon isn't running. According to
the comment in dbus-sysdeps-unix.c it should be a part of post-install.
As |dbus-uuidgen --ensure| is only called in rc.d script DBus consumers
may not work for regular users before admin adds dbus_enable=YES in rc.conf.
So, try filing a bug for

- devel/dbus to create /var/db/dbus/machine-id during package install
- devel/linux-*-dbus-libs to symlink /var/lib/dbus/machine-id the above

> D-Bus not compiled with backtrace support so unable to print a backtrace

devel/dbus's configure script expects to find |backtrace| symbol in
libc while BSD systems have a separate library for it.
Comment 7 Jan Beich freebsd_committer freebsd_triage 2015-08-11 14:26:05 UTC
(In reply to Jan Beich from comment #6)
> So, try filing a bug for

Nevermind. gnome@ already tracks machine-id issue as bug 198403 while bug 200190 can be moved to emulation@ almost as is.
Comment 8 commit-hook freebsd_committer freebsd_triage 2015-08-11 21:33:19 UTC
A commit references this bug:

Author: jbeich
Date: Tue Aug 11 21:32:30 UTC 2015
New revision: 393974
URL: https://svnweb.freebsd.org/changeset/ports/393974

Log:
  MFH: r393941

  Switch OpenH264 plugin to use environment variable

  files/patch-system-openh264 causes patch churn on updates and hits
  assertion with DEBUG=on[1]. Rework to use MOZ_GMP_PATH instead.

  While here populate Last Updated field to avoid falling back to Epoch start
  and disable Automatic Updates in an unlikely case of
  - Cisco & Mozilla providing prebuilt version for FreeBSD
  - Firefox running with root priveleges i.e., write permission under /usr/local

  PR:		202218 [1]
  Reported by:	kib, pi [1]
  Inspired by:	Gentoo
  Approved by:	ports-secteam (feld)

Changes:
_U  branches/2015Q3/
  branches/2015Q3/mail/thunderbird/Makefile
  branches/2015Q3/mail/thunderbird/files/patch-mail-app-nsMailApp.cpp
  branches/2015Q3/mail/thunderbird/files/patch-system-openh264
  branches/2015Q3/multimedia/openh264/Makefile
  branches/2015Q3/multimedia/openh264/files/gmpopenh264.js.in
  branches/2015Q3/www/firefox/Makefile
  branches/2015Q3/www/firefox/files/patch-browser-app-nsBrowserApp.cpp
  branches/2015Q3/www/firefox/files/patch-system-openh264
  branches/2015Q3/www/firefox-esr/Makefile
  branches/2015Q3/www/firefox-esr/files/patch-browser-app-nsBrowserApp.cpp
  branches/2015Q3/www/firefox-esr/files/patch-system-openh264
  branches/2015Q3/www/libxul/Makefile
  branches/2015Q3/www/libxul/files/patch-system-openh264
  branches/2015Q3/www/libxul/files/patch-xulrunner-stub-nsXULStub.cpp
  branches/2015Q3/www/seamonkey/Makefile
  branches/2015Q3/www/seamonkey/files/patch-suite-app-nsSuiteApp.cpp
  branches/2015Q3/www/seamonkey/files/patch-system-openh264
Comment 9 Walter Schwarzenfeld 2015-08-13 11:48:54 UTC
Now it compiles with DEBUG=on. But not with DEBUG=on and DTRACE=on. It exits with

c++: error: unable to execute command: Segmentation fault (core dumped)
c++: note: diagnostic msg: Error generating preprocessed source(s).
/usr/ports/www/firefox/work/mozilla-release/config/rules.mk:946: recipe for target 'Unified_cpp_dom_mobilemessage0.o' failed
gmake[7]: *** [Unified_cpp_dom_mobilemessage0.o] Error 254
gmake[7]: Leaving directory '/usr/ports/www/firefox/work/mozilla-release/obj-x86_64-portbld-freebsd10.1/dom/mobilemessage'
/usr/ports/www/firefox/work/mozilla-release/config/recurse.mk:70: recipe for target 'dom/mobilemessage/target' failed
gmake[6]: *** [dom/mobilemessage/target] Error 2
gmake[6]: *** Waiting for unfinished jobs....
libgfx_gl.a.desc
rm -f libgfx_gl.a
/usr/ports/www/firefox/work/mozilla-release/obj-x86_64-portbld-freebsd10.1/_virtualenv/bin/python /usr/ports/www/firefox/work/mozilla-release/config/expandlibs_gen.py -o libgfx_gl.a.desc GLContextProviderGLX.o Unified_cpp_gfx_gl0.o Unified_cpp_gfx_gl1.o
gmake[7]: Leaving directory '/usr/ports/www/firefox/work/mozilla-release/obj-x86_64-portbld-freebsd10.1/gfx/gl'
gmake[6]: Leaving directory '/usr/ports/www/firefox/work/mozilla-release/obj-x86_64-portbld-freebsd10.1'
gmake[5]: *** [compile] Error 2
/usr/ports/www/firefox/work/mozilla-release/config/recurse.mk:32: recipe for target 'compile' failed
gmake[5]: Leaving directory '/usr/ports/www/firefox/work/mozilla-release/obj-x86_64-portbld-freebsd10.1'
gmake[4]: *** [default] Error 2
/usr/ports/www/firefox/work/mozilla-release/config/rules.mk:538: recipe for target 'default' failed
gmake[4]: Leaving directory '/usr/ports/www/firefox/work/mozilla-release/obj-x86_64-portbld-freebsd10.1'
gmake[3]: *** [realbuild] Error 2
/usr/ports/www/firefox/work/mozilla-release/client.mk:400: recipe for target 'realbuild' failed
gmake[3]: Leaving directory '/usr/ports/www/firefox/work/mozilla-release'
gmake[2]: *** [build] Error 2
/usr/ports/www/firefox/work/mozilla-release/client.mk:171: recipe for target 'build' failed
gmake[2]: Leaving directory '/usr/ports/www/firefox/work/mozilla-release'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/www/firefox
*** Error code 1

Stop.
make: stopped in /usr/ports/www/firefox