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
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.
Works fine for me. What *exactly* was the error ?
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).
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.
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'...
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.
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?
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).
(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.
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
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.
So you guys want the adobe-flash folks to provide a way to only install the 32-bit plugins right?
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?
(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
*** This bug has been marked as a duplicate of bug 268336 ***
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 :)
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?
Sorry, I see this was marked as a duplicate of bug 268336; I'll go post there instead.