Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 273718 - www-client/mozilla-firefox-3.0.10 crashes regularly with adobe-flash on 64-bit
Summary: www-client/mozilla-firefox-3.0.10 crashes regularly with adobe-flash on 64-bit
Status: RESOLVED DUPLICATE of bug 268336
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Jim Ramsay (lack) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-11 12:28 UTC by Maik Nijhuis
Modified: 2009-07-20 12:42 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Maik Nijhuis 2009-06-11 12:28:56 UTC
Since I've upgrade to firefox-3.0.10, firefox regularly crashes. Usually restarting firefox helps, but now I found a website which always crashes firefox.

Reproducible: Always

Steps to Reproduce:
1.Start firefox
2.Go to https://www.dealextreme.com
3.

Actual Results:  
Crash, Invalid instruction error


Portage 2.1.6.11 (default/linux/amd64/2008.0/desktop, gcc-4.3.2, glibc-2.8_p2008
0602-r1, 2.6.25-gentoo-r6 x86_64)
=================================================================
System uname: Linux-2.6.25-gentoo-r6-x86_64-AMD_Athlon-tm-_64_Processor_3200+-wi
th-glibc2.2.5
Timestamp of tree: Thu, 11 Jun 2009 09:45:01 +0000
distcc 3.0 x86_64-pc-linux-gnu [disabled]
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7-r1, 2.1.7
dev-lang/python:     2.5.4-r2
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O3 -fomit-frame-pointer -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/
fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /et
c/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/
web2c /etc/udev/rules.d"
CXXFLAGS="-O3 -fomit-frame-pointer -pipe"
DISTDIR="/tmp/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms str
ict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="http://gentoo.tiscali.nl http://ftp.snt.utwente.nl/pub/os/linux/
gentoo http://mirror.muntinternet.net/pub/gentoo/ http://gentoo.oregonstate.edu/
 http://www.ibiblio.org/pub/Linux/distributions/gentoo"
LANG="nl_NL@euro"
LC_ALL="nl_NL@euro"
LDFLAGS="-Wl,-O1"
LINGUAS="nl en_US en"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress 
--force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclu
de=/local --exclude=/packages"
PORTAGE_TMPDIR="/tmp/portage"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/java-overlay /usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="3dnow 3dnowex X a52 aac acpi alsa amd64 bash-completion berkdb bluetooth br
anding bzip2 cairo cdr cli cracklib crypt cups dbus divx divx4linux dri dvd dvdr
 dvdread emboss encode evo fam fbcon ffmpeg filepicker firefox gdbm gif glut gme
dia gnutls gpm gstreamer gtk hal iconv imap insecure-drivers ipv6 isdnlog jabber
 java javascript jikes jpeg justify kpathsea largeterminal libnotify live mad mm
x mozsvg mp3 mpeg msn mudflap multilib ncurses network nls nptl nptlonly nsplugi
n offensive ogg opengl openmp pam parse-clocks pcre pdf png pop ppds pppd qt3 qt
3support qt4 quicktime readline realmedia reflection restrict-javascript rtc sas
l sdl session sidebar slang smtp spell spl sse sse2 ssl startup-notification str
oke svg symlink sysfs tcl threads tiff tk truetype unicode usb vorbis wmp x264 x
ml xorg xulrunner xv xvid xvmc zlib" ALSA_CARDS="via82xx" ALSA_PCM_PLUGINS="adpc
m alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladsp
a lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softv
ol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm a
uthn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz
_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env
 expires ext_filter file_cache filter headers include info log_config logio mem_
cache mime mime_magic negotiation rewrite setenvif speling status unique_id user
dir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev" KERNEL="linux" LC
D_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text
" LINGUAS="nl en_US en" USERLAND="GNU" VIDEO_CARDS="via vesa"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_CO
MPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Maik Nijhuis 2009-06-11 12:36:17 UTC
www-client/mozilla-firefox-bin-3.0.10 does not have the problem, and displays https://www.dealextreme.com perfectly.
When I start www-client/mozilla-firefox-3.0.10 in safe-mode, in which all extensions and addons are disabled, the problem also occurs.
Comment 2 Rafał Mużyło 2009-06-11 16:50:08 UTC
Works fine for me.
What *exactly* was the error ?
Comment 3 Maik Nijhuis 2009-06-15 11:18:38 UTC
The exact output is:

Removing DOMNodeRemoved listener
Ongeldige instructie

"Ongeldige instructie" is a Dutch error, which means "Invalid instruction".

Recompiling firefox had no effect. I'll try recompiling some helper libraries.

On another amd64 system I do not have the problem.

btw dealextreme is doing maintenance on their site. The problem currently occurs at https://www2.dealextreme.com (after creating a security exception, because they use a certificate for www.dealextreme.com).
Comment 4 Maik Nijhuis 2009-06-17 11:22:49 UTC
It appears the 64 bit flash plugin from adobe causes the problem (www-plugins/adobe-flash-10.0.22.87)

When I run firefox in gdb, the flash plugin library is in the backtrace. This happens *even* when I run firefox in safe mode, in which all plugins should be disabled. When I look at the disassembly for finding the illegal instruction, there are some SSE2 instructions, but /proc/cpuinfo shows that my AMD Athlon(tm) 64 Processor 3200+ supports sse2. Maybe one of the memory addresses in the disassembly is incorrect, but I suppose the processor generates a different exception then.

After removing adobe-flash-10.0.22.87, the problem disappeared, and after adding it again, the problem reappeared. I tested it using http://www.nshispeed.nl since dealextreme is currently down. nshispeed triggers the same error.

With adobe-flash-10.0.15.3, firefox does not crash on nshispeed, so I'll use that version for now, and I'll wait for a new adobe-flash version.
Comment 5 Maik Nijhuis 2009-06-18 11:17:22 UTC
After some further investigation, I noticed firefox (or probably the flash plugin) *does* execute an invalid instruction.  The crash occurs because of a lahf instruction in long mode. The Athlon 64 does *not* have the lahf_lm flag in /proc/cpuinfo, which means the lahf and sahf instruction are not available in long mode (64 bit).

When run firefox in gdb, and compare the address of the invalid instruction against the shared library addresses (info sharedlibrary), the address is in firefox itself, and not in a shared library. So it seems like the flash plugin triggers a bug in firefox...

I've tried compiling xulrunner and firefox with CFLAGS="-ggdb -O3" and FEATURES=splitdebug, but somehow gdb still can't find symbols. I can't even set a breakpoint on 'main'...

Comment 6 Paulo da Silva 2009-06-24 22:57:15 UTC
I have the same problem here. Firefox crashes with an "illegal instruction" systematically in certain sites (ex.: www.continente.pt). Konqueror doesn't crash but issues an error message in place of the "flash window". Version 10.0.15.3 works fine with nspluginwrapper.
This only happens on my +-4 years old desktop. In a laptop (64 bits dual core) I bought recently flash works fine.
Comment 7 Paulo da Silva 2009-06-27 20:22:24 UTC
I installed the 32 bits plugin 10.0.22.87 by hand and nspluginwrapper and now everything seems to be fine! Is there a way to install *only* the 32 bits version using the ebuild? I tried USE="32bit -multilib" but still installs both versions. BTW, why both versions?
Comment 8 Maik Nijhuis 2009-06-28 06:09:22 UTC
The 32-bit plugin is for firefox-bin users. Opera, which is only distributed as binary, probably also uses the 32 bit plugin, when you install the 32-bit version (ia32 USE flag).
Comment 9 Paulo da Silva 2009-06-28 14:30:21 UTC
(In reply to comment #8)
> The 32-bit plugin is for firefox-bin users. Opera, which is only distributed as
> binary, probably also uses the 32 bit plugin, when you install the 32-bit
> version (ia32 USE flag).
> 

ia32 is to install 32 bits opera. There should be a USE to install only the 32 bits version of adobe-flash. This would fix this problem until a full working version is available.
Comment 10 Paulo da Silva 2009-06-29 17:12:51 UTC
Just one question ...
Is this being read by the mantainer? I saw that the satus is resolved.
Is it possible for the original reporter to reopen the bug?
Thanks
Comment 11 Maik Nijhuis 2009-06-30 06:30:27 UTC
I marked it resolved because I thought there is not much to do about it, but you're right, it is still not fixed, so I'll reopen again.
Comment 12 Nirbheek Chauhan (RETIRED) gentoo-dev 2009-06-30 10:52:12 UTC
So you guys want the adobe-flash folks to provide a way to only install the 32-bit plugins right?
Comment 13 Maik Nijhuis 2009-06-30 12:12:21 UTC
Yes, preferably depending on whether the lahf_lm flag is in /proc/cpuinfo. Another option is adding a USE flag and printing a warning when the 64 bit plugin is installed and /proc/cpuinfo does not contain the lahf_lm flag. The warning should contain some info about the USE flag.

Paulo: Do you have the lahf_lm flag in /proc/cpuinfo?
Comment 14 Paulo da Silva 2009-06-30 20:26:11 UTC
(In reply to comment #13)
> Yes, preferably depending on whether the lahf_lm flag is in /proc/cpuinfo.
> Another option is adding a USE flag and printing a warning when the 64 bit
> plugin is installed and /proc/cpuinfo does not contain the lahf_lm flag. The
> warning should contain some info about the USE flag.
> 
> Paulo: Do you have the lahf_lm flag in /proc/cpuinfo?
> 
No in the system that does not work. Yes  in the system that works.
So, I think it's needed a way to install *only* the 32 bits adobe-flash. Last version works with nspluginwrapper and it seems a good solution for those CPUs that do not work and to avoid the security issues with the previous version.
A message to alert for the need of nspluginwrapper in this case could also be issued.
Thanks
Comment 15 Nirbheek Chauhan (RETIRED) gentoo-dev 2009-07-07 14:17:42 UTC

*** This bug has been marked as a duplicate of bug 268336 ***
Comment 16 Jim Ramsay (lack) (RETIRED) gentoo-dev 2009-07-14 14:05:47 UTC
Wow, just getting back from holiday and finding that someone else has tracked down the solution to a tricky problem is a great treat!

Thanks so much for the excellent investigation here, I'll be doing a -r1 ebuild soon that will address this.

Wow :)
Comment 17 Maks Verver 2009-07-20 12:40:53 UTC
I'm using an Athlon 64 3000+ (socket 754) which lacks the lahf instruction and I've had this problem for months, but I never really understood what the problem was, until the latest ebuild update spelled it out for me (thanks for that!)

Understanding the problem, it was relatively easy to hack together a workaround that works by trapping the illegal instruction signal and then emulating its effects. This can be implemented as a small dynamic library that is placed in the plugin directory (so it's loaded whenever the Flash plug-in is loaded) or forced to load by adding it to LD_PRELOAD. I have attached the source in the hope that it might be useful to other users.

The downside of the current ebuild is that it prevents the 64-bit plugin from being installed through portage at all. Would you consider bundling my workaround for 64-bit users who lack the lafh instruction or at least change the error into a warning?
Comment 18 Maks Verver 2009-07-20 12:42:31 UTC
Sorry, I see this was marked as a duplicate of bug 268336; I'll go post there instead.