Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 268336 - www-plugins/adobe-flash-10.0.22.87 crashes www-client/mozilla-firefox with "Illegal instruction"
Summary: www-plugins/adobe-flash-10.0.22.87 crashes www-client/mozilla-firefox with "I...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: AMD64 Linux
: Normal major (vote)
Assignee: Jim Ramsay (lack) (RETIRED)
URL:
Whiteboard:
Keywords:
: 273718 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-05-02 20:43 UTC by Yuriy Rusinov
Modified: 2010-01-08 13:19 UTC (History)
12 users (show)

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


Attachments
My emerge --info (emerge_info.txt,4.18 KB, text/plain)
2009-05-02 20:47 UTC, Yuriy Rusinov
Details
emerge --info (emerge.info.txt,11.69 KB, text/plain)
2009-07-05 11:19 UTC, crucify
Details
emerge -epv mozilla-firefox (emerge.epv.mozilla-firefox.txt,32.46 KB, text/plain)
2009-07-05 11:20 UTC, crucify
Details
gdb firefox (firefox.debug.txt,5.25 KB, text/plain)
2009-07-05 11:20 UTC, crucify
Details
lahf emulation workaround (flashplugin-lafh-fix.c,1.01 KB, text/x-c)
2009-07-20 12:43 UTC, Maks Verver
Details
lahf emulation workaround (flashplugin-lahf-fix.c,1.01 KB, text/x-c)
2009-07-20 12:46 UTC, Maks Verver
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Yuriy Rusinov 2009-05-02 20:43:06 UTC
Sometimes if I open some URLs, Firefox became crash with "Illegal instruction" message. After that on next browser launch if I select "Restore previous session" firefox crashes more and more until I select "Start new session".
Comment 1 Yuriy Rusinov 2009-05-02 20:47:37 UTC
Created attachment 190164 [details]
My emerge --info

Portage 2.1.6.7 (default/linux/amd64/2008.0, gcc-4.3.2, glibc-2.8_p20080602-r1, 2.6.28-gentoo-r5 x86_64)
=================================================================
System uname: Linux-2.6.28-gentoo-r5-x86_64-AMD_Athlon-tm-_64_Processor_3000+-with-gentoo-1.12.11.1
Timestamp of tree: Thu, 30 Apr 2009 03:45:02 +0000
distcc 3.0 x86_64-pc-linux-gnu [disabled]
ccache version 2.4 [disabled]
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7-r1, 2.1.7
dev-lang/python:     2.4.4-r14, 2.5.4-r2, 2.6.2
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.6.3-r1
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.9
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 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.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=k8 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="collision-protect distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://mirror.yandex.ru/gentoo-distfiles/ ftp://gentoo.arcticnetwork.ca/pub/gentoo/ http://gentoo.arcticnetwork.ca/ ftp://mirrors.tera-byte.com/pub/gentoo http://gentoo.mirrors.tera-byte.com/ http://gentoo.osuosl.org/ ftp://distro.ibiblio.org/pub/linux/distributions/gentoo/ http://distro.ibiblio.org/pub/linux/distributions/gentoo/ ftp://ftp.gtlib.gatech.edu/pub/gentoo http://www.gtlib.gatech.edu/pub/gentoo "
LANG="ru_RU.UTF-8"
LC_ALL=""
LDFLAGS="-Wl,-O1"
LINGUAS="en ru"
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 --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/initng /usr/portage/local/layman/voip /usr/portage/local/layman/games /usr/portage/local/layman/science /usr/local/portage /usr/i686-mingw32/usr/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="acl alsa amd64 bash-completion berkdb bzip2 cli cracklib crypt cups dri esd firefox fortran gdbm gnome gpm gtk iconv ipv6 isdnlog midi mmx mudflap multilib ncurses nls nptl nptlonly opengl openmp pam pcre perl pppd python qt readline reflection samba sdl session spl sse sse2 ssh ssl sysfs tcpd unicode v4l v4l2 xorg xulrunner zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en ru" USERLAND="GNU" VIDEO_CARDS="nv"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 2 Yuriy Rusinov 2009-05-20 21:04:38 UTC
some investigations shows that emerge -aC www-plugins/adobe-flash solves this problem. Do I have to move this bug report onto adobe-flash ?

Best regards,
Yuriy Rusinov.
Comment 3 Jeremy Murphy 2009-06-13 12:40:40 UTC
Yeah, I noticed that Firefox started crashing a lot recently, and after doing some testing I found that Firefox crashes when I close a window that contains a tab with flash content.  (Closing just the tab or navigating elsewhere is OK.)  I'm pretty certain that this was not happening prior to 3.0.10 so I would leave it as a Firefox bug, although coincidentally, it seems that the latest version of Adobe Flash Player was released around the same time as 3.0.10.
Comment 4 crucify 2009-07-05 11:19:43 UTC
Created attachment 196733 [details]
emerge --info
Comment 5 crucify 2009-07-05 11:20:09 UTC
Created attachment 196734 [details]
emerge -epv mozilla-firefox
Comment 6 crucify 2009-07-05 11:20:31 UTC
Created attachment 196735 [details]
gdb firefox
Comment 7 crucify 2009-07-05 11:24:05 UTC
same problem.
I try
* emerge -C adobe-flash
* emerge cairo cairomm
* rm -f /usr/lib64/nsbrowser/plugins/*
* emerge -e world

firefox crash with 'Illegal Instruction'
Comment 8 Nirbheek Chauhan (RETIRED) gentoo-dev 2009-07-07 14:17:42 UTC
*** Bug 273718 has been marked as a duplicate of this bug. ***
Comment 9 Nirbheek Chauhan (RETIRED) gentoo-dev 2009-07-07 14:20:09 UTC
As was discovered on bug 273718, this is due to the alpha-64-bit flash, the 32-bit flash + emul libs doesn't have the problem.
Comment 10 Jim Ramsay (lack) (RETIRED) gentoo-dev 2009-07-15 13:52:03 UTC
Okay, I just committed www-plugins/adobe-flash-10.0.22.87-r1 which does (for amd64 customers):

By default it will install only the 64-bit plugin for non-multilib users, and both the 32-bit and 64-bit plugins for multilib users.

For multilib users, this can be fine-tuned even more now, so you can decide to install just the 32-bit plugin, just the 64-bit plugin, or both.

Furthermore, we also check for the 'lahf_lm' flag in /proc/cpuinfo.  If this is not present, we do NOT allow installation of the 64-bit plugin, since we know this will cause illegal instruction crashes, thanks to the careful investigation done in bug 273718.
Comment 11 Maks Verver 2009-07-20 12:42:43 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 12 Maks Verver 2009-07-20 12:43:45 UTC
Created attachment 198602 [details]
lahf emulation workaround
Comment 13 Maks Verver 2009-07-20 12:46:40 UTC
Created attachment 198604 [details]
lahf emulation workaround
Comment 14 Jim Ramsay (lack) (RETIRED) gentoo-dev 2009-07-20 13:58:22 UTC
Wow, another excellent solution, thanks!

  www-plugins/adobe-flash-10.0.22.87-r2 released with this clever emulation fix

Would everyone affected please turn your USE=64bit back on, test this out, and report back here?
Comment 15 David Fisco 2009-07-20 18:04:45 UTC
(In reply to comment #14)
> Wow, another excellent solution, thanks!
> 
>   www-plugins/adobe-flash-10.0.22.87-r2 released with this clever emulation fix
> 
> Would everyone affected please turn your USE=64bit back on, test this out, and
> report back here?
> 

I switched back to 64 bit, checked several sites and everything seems to be working fine, no crashes with Firefox 3.0.11.  My processor does not have lahf_lm:

[/proc] cat cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 15
model name      : AMD Athlon(tm) 64 Processor 3200+
stepping        : 0
cpu MHz         : 1000.000
cache size      : 512 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow rep_good
bogomips        : 1994.07
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp


Comment 16 George L. Emigh 2009-07-20 18:52:52 UTC
(In reply to comment #14)
> Wow, another excellent solution, thanks!
> 
>   www-plugins/adobe-flash-10.0.22.87-r2 released with this clever emulation fix
> 
> Would everyone affected please turn your USE=64bit back on, test this out, and
> report back here?
> 

emerged with +64bit -32bit and firefox 3.5 and now flash works on every flash site I tried and no crash yet, nice fix, and great job on the Illegal instruction workaround.

# cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 4
model name      : AMD Athlon(tm) 64 Processor 3200+
stepping        : 8
cpu MHz         : 800.000
cache size      : 1024 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow up rep_good
bogomips        : 1679.74
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp

George

Comment 17 Maks Verver 2009-07-20 20:23:16 UTC
The r2 ebuild works for fine for me. :-)
Jim: thanks for the quick update!
Comment 18 Greg Tassone 2009-07-21 23:14:45 UTC
FYI: I was having the specified issue.  Just installed the update and ran some tests... problem resolved.  Thanks to all for tracking down a relatively tricky issue!
Comment 19 Miguel R. Caudevilla 2009-07-26 14:53:10 UTC
WOW!!!

Great job!! I've been messing around with this crash for months... I'm very glad this problem has been solved.

Looking around i think that lahf_lm instruction isn't set in AMD 64 cpu family 15. Could anyone confirm this? Maybe we could consider this as a USE flag? Well this is only an idea...

Thanks again to the people involved in solving this bug...
Comment 20 Maik Nijhuis 2009-08-03 09:06:42 UTC
The lahf workaround works perfectly! I tried both adobe-flash-10.0.22.87 and adobe-flash-10.0.32.18, on my non-lahf AMD64 machine. Thanks everybody!
Comment 21 Yuriy Rusinov 2009-08-10 12:02:45 UTC
Thanks a lot, a week ago I updated portage and all works fine.