Вылетает Firefox

Краткая предыстория: уже давно столкнулся с тем, что третий лис дольше получаса не работает, в то время как на работе под виндой всё "на ура" да и тема в инете не так уж часто поднимается. Сначала грешил на то, что сижу под ~x86, но в одном из опросов про стабильность огнелиса увидел рекомендации, что и в этой конфигурации у людей работает, в то время как у других в стабильной ветке может наоборот глючить.

В общем решил на свою голову разобраться. Перекомпилировал сам файрфокс, перекомпилировал xulrunner. В результате теперь вылетает уже через минуту-две работы. Поотключал все плагины, все дополнения, локаль, поудалял все нестандартные темы - не помогает. Замаскировал последние версии лиса и ксула, пересобрал - эффект тот же. Скачал и запустил бинарник от яндекса - аналогично.

Затем обрубился интернет и всю ночь, без всяких вылетов занимался локальным сайтом - всё отлично работало. С появлением интернета глюк вернулся.

Попробовал копаться strace'ом - в результате обнаружил, что вылетает аккурат на открытии устройства /dev/zero с флагами "на чтение" и передачей дескриптора функции mmap2 - возвращаемая ошибка "неверный параметр" и следом segfault. В логе последних событий (который выводится на двенадцатую консоль) каждый раз указываются разные адреса в памяти, где произошла ошибка (до того как начал пересобирать в первый раз - всегда был один и тот же адрес). Если пройтись по файлу лога, то видно, что /dev/zero неоднократно и успешно используется, но при этом открывается всегда с флагами на чтение и на запись.

open("/dev/zero", O_RDONLY) = 48
fstat64(48, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 5), ...}) = 0
mmap2(NULL, 0, PROT_READ|PROT_WRITE, MAP_PRIVATE, 48, 0) = -1 EINVAL (Invalid argument)
--- SIGSEGV (Segmentation fault) @ 0 (0) ---

Ничего толкового на эту тему выгуглить не удалось, кроме описания для чего собственно этот /dev/zero нужен (поразительно востребованная информация повторяющаяся на каждом уважающем себя сайте о линуксе )))

Сегодня обратил внимание, что перед вылетом идёт некоторая пауза, при которой процессор загружается на 100% и лис не отрисовывается. В логах стрейса это соответствует примерно сотне мегабайт повторения строчки

[...]
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
[...]

В консоли сообщение такого вида:

(firefox:7347): Pango-WARNING **: Error loading GSUB table 28333
Xlib: unexpected async reply (sequence 0x23840)!

Пересобрал pango и x11-libs/libX11, следом фокс с ксулом - вылетать стал значительно быстрее и без ленты поллов - уже прогресс ))

вот теперь в тупике - куда дальше копать, как получить более подробный или человекочитаемый отчёт о том, в каком модуле или функции сбой происходит

P.S. Мир пересобрать не удалось - была куча ошибок с явой, а на работе не было возможности постоянно скипать

P.P.S.

[I] www-client/mozilla-firefox
Installed versions: 3.0.1(02:56:42 24.09.2008)(dbus gnome java linguas_en linguas_ru startup-notification xulrunner -bindist -custom-optimization -iceweasel -ipv6 -linguas_af -linguas_ar -linguas_be -linguas_ca -linguas_cs -linguas_da -linguas_de -linguas_el -linguas_en_GB -linguas_en_US -linguas_es -linguas_es_AR -linguas_es_ES -linguas_eu -linguas_fi -linguas_fr -linguas_fy -linguas_fy_NL -linguas_ga -linguas_ga_IE -linguas_gu -linguas_gu_IN -linguas_he -linguas_hu -linguas_id -linguas_it -linguas_ja -linguas_ka -linguas_ko -linguas_ku -linguas_lt -linguas_mk -linguas_mn -linguas_nb -linguas_nb_NO -linguas_nl -linguas_nn -linguas_nn_NO -linguas_pa -linguas_pa_IN -linguas_pl -linguas_pt -linguas_pt_BR -linguas_pt_PT -linguas_ro -linguas_si -linguas_sk -linguas_sl -linguas_sq -linguas_sr -linguas_sv -linguas_sv_SE -linguas_tr -linguas_uk -linguas_zh -linguas_zh_CN -linguas_zh_TW -mozdevelop -restrict-javascript)

[I] net-libs/xulrunner
Installed versions: 1.9.0.1(1.9)(02:47:09 24.09.2008)(dbus gnome java startup-notification -custom-optimization -elibc_FreeBSD -ipv6)

emerge --info

Portage 2.2_rc9 (default/linux/x86/2008.0/desktop, gcc-4.3.1, glibc-2.8_p20080602-r0, 2.6.26-gentoo-r1 i686)
=================================================================
System uname: Linux-2.6.26-gentoo-r1-i686-AMD_Sempron-tm-_Processor_3000+-with-glibc2.0
Timestamp of tree: Tue, 23 Sep 2008 18:36:01 +0000
ccache version 2.4 [enabled]
app-shells/bash: 3.2_p39
dev-java/java-config: 1.3.7, 2.1.6-r1
dev-lang/python: 2.4.4-r6, 2.5.2-r8
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache: 2.4-r7
sys-apps/baselayout: 2.0.0
sys-apps/openrc: 0.2.5
sys-apps/sandbox: 1.2.18.1-r3
sys-devel/autoconf: 2.13, 2.63
sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils: 2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool: 2.2.6a
virtual/os-headers: 2.6.26
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O3 -march=athlon-xp -msse3 -pipe"
CHOST="i686-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 /var/bind /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O3 -march=athlon-xp -msse3 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="buildpkg ccache distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="ru_RU.UTF-8"
LC_ALL=""
LDFLAGS="-Wl,-O1"
LINGUAS="eo ru en"
PKGDIR="/usr/portage/packages"
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"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="16bit 16bit-indices 3dnow 3dnowext 3ds 64bit 7zip X a52 aac aalib ace acl acpi administrator ads aften agent aio akode aliaschain alsa amarok amavis amazon amd amr amrnb amrwb animgif ao aotuv apache2 apm applet aqua_theme archive artworkextra asm aspell attachment audit auth auto-completion autocreate autoipd automount avahi background bash-completion bashlogger bcmath be berkdb binary-drivers bittorrent bl blender-game bluetooth branding bzip2 cairo cal3d carbone_theme cdb cddb cdparanoia cdr cdsound cg chm chroot cisco cjk clamav clamd cli clucene color-console colordiff console consolekit cracklib crypt css curl curlwrappers cursors cvs cvsgraph cyrillic dbus dbx dga directfb djvu dri dts dvb dvd dvdr dvdread eds emboss emf emoticon encode enscript esd evo examples exif expat fam fbcon fbcondecor fbsplash ffmpeg fftw firebird firefox flac flatfile fontconfig foomaticdb fortran ftp games gcj gd gdbm gdm gecko ggi gif gimp ginac git glade glitz glsa glut glw gmp gnome gnuplot gnustep gnutls gpg gpgme gphoto2 gpm grub gsl gstreamer gtk gtkhtml gtkspell hal hddtemp htmlhandbook iconv idn imagemagick imap imlib inifile innodb isdnlog jabber java java6 javascript jbig jikes jingle jpeg jpeg2k kde kerberos kolab lame lapack ldap libedit libnotify lm_sensors logrotate lzo mad mbox mdnsresponder-compat midi mikmod mmx mmxext mng modplug mp2 mp3 mp4 mpeg mplayer mudflap musepack musicbrainz mysql mysqli nano-syntax nas nat nautilus ncurses neXt netboot networkmanager new-interface nfs nls nptl nptlonly nsplugin nut nvidia ofx ogg openal openexr opengl openmp pam pcre pdf perl php png posix postgres ppds pppd prelude profile pulseaudio python qt3 qt3support qt4 quicktime radio rar raw rdesktop reflection rss ruby samba sasl scanner sdl sendmail server session shorten simplexml slang slp sndfile soap sockets socks5 sound sounds sox spam-auth-user spamassassin speech speex spell spl sqlite sse sse2 sse3 ssl startup-notification subversion svg svgz sysfs syslog sysvipc tcl tcpd themes theora thesaurus threads tidy tiff tk tokenizer truetype type1 unicode usb utf-8 v4l v4l2 vcd vesa vhosts video videos virtual-users visibility visual visualisation vnc vorbis wavpack wddx wifi win32codecs wma wmf wxwindows x86 xattr xcomposite xine xinetd xml xmldoclet xmlreader xmlrpc xmlwriter xorg xosd xpm xscreensaver xscreensavers xsl xulrunner xv xvid zero-penalty-hit zeroconf zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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 authn_alias authn_anon 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 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 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="eo ru en" USERLAND="GNU" VIDEO_CARDS="fbdev vesa nvidia"
Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

может не счёт,

может не счёт, но для начала нужно эти проги и либы собрать с -O2

У меня тоже

У меня тоже такая херня началась (вылет через пару минут) после пересборки system с O3, если я не ошибаюсь. Покрайней мере точно firefox не пересобирался и начал вылетать. Я сначала забил, поставил world дальше пересобираться, но после окончания ничего не изменилось. В силу того, что ничего кроме FF явным образом не глючило, я оставил O3.

По инету в опере лазал, но недавно из-за блоггер-плагина реанкарнировать решил FF, и как самый простой и быстрый способ - поставил себе бинарный. Вот уже неделю никаких вылетов. Разницы в работе, кроме дебильных цветовых тем в Settings и layout-а там же - незаметил.

PS. Пересборка FF с O2 не помогает. Он вываливается из-за какой-то связанной либы повидимому.

Поставил

Поставил бинарный - в наличии 3.0-r1 - та же фигня, вылетает через пару минут.

Имхо, проблема где-то с дополнениями, возможно что-то несовместимо со старым профилем - он существует ещё со времён до первой лисицы - буду экспериментировать. Пока временное решение - очистка профиля в домашней папке.

-= Concordia victoriam gignit =-

а удалить с

а удалить с домашней директории .mozilla
или как там называется

Спасибо. Сделал

Спасибо. Сделал сегодня - помогло, теперь медитирую над тем, как бы профиль обратно импортировать, со всеми сохранёнными паролями. И есть опасения, что проблема всё равно вернётся с накоплением плагинов и расширений - всё-таки нужны диагностические средства. Буду пока бэкапить профиль

-= Concordia victoriam gignit =-

Aleks Revo

Aleks Revo написал(а):
Скачал и запустил бинарник от яндекса - аналогично

Подтверждаю.

developer написал(а):
поставил себе бинарный. Вот уже неделю никаких вылетов.

то есть www-client/mozilla-firefox-bin работает нормально? Буду посмотреть.

Да, bin версия

Да, bin версия 3-ей лисы работает без проблем.

Мне не помогло,

Мне не помогло, помогла очистка профиля. Сегодня был релиз версии 3.0.2 - сейчас попробую скачать.

Кстати в нете пишут что помогает пересборка мира, - посмотрим, пока компилится ООО )))

-= Concordia victoriam gignit =-

О, уже и в

О, уже и в портеже есть. Щас отрапортую об обоих вариантах ))

-= Concordia victoriam gignit =-

а вот у меня проблем не было ни разу

~ # emerge --info
Portage 2.2_rc8 (default/linux/amd64/2008.0/desktop, gcc-4.3.1, glibc-2.8_p20080602-r0, 2.6.25-gentoo-r7 x86_64)
=================================================================
System uname: Linux-2.6.25-gentoo-r7-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_3800+-with-glibc2.2.5
Timestamp of tree: Sat, 20 Sep 2008 11:00:01 +0000
ccache version 2.4 [enabled]
app-shells/bash: 3.2_p39
dev-lang/python: 2.5.2-r8
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache: 2.4-r7
sys-apps/baselayout: 2.0.0
sys-apps/openrc: 0.2.5
sys-apps/sandbox: 1.2.18.1-r3
sys-devel/autoconf: 2.13, 2.62-r1
sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils: 2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool: 2.2.4
virtual/os-headers: 2.6.26
ACCEPT_KEYWORDS="amd64 x86 ~amd64 ~x86"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=k8 -mtune=k8 -m3dnow -msse3 -ftracer -mfpmath=sse -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/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=k8 -mtune=k8 -m3dnow -msse3 -ftracer -mfpmath=sse -pipe"
FEATURES="candy ccache distlocks parallel-fetch preserve-libs sfperms strict unmerge-orphans userfetch"
LANG="ru_RU.UTF-8"
LC_ALL="ru_RU.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="ru"
MAKEOPTS="-j3"

~ # emerge -pv mozilla-firefox

These are the packages that would be merged, in order:

Calculating dependencies ... done!
[ebuild R ] www-client/mozilla-firefox-3.0.1 USE="dbus ipv6 mozdevelop startup-notification xulrunner -bindist -custom-optimization -gnome -iceweasel -java -restrict-javascript" LINGUAS="ru -af -ar -be -ca -cs -da -de -el -en -en_GB -en_US -es -es_AR -es_ES -eu -fi -fr -fy -fy_NL -ga -ga_IE -gu -gu_IN -he -hu -id -it -ja -ka -ko -ku -lt -mk -mn -nb -nb_NO -nl -nn -nn_NO -pa -pa_IN -pl -pt -pt_BR -pt_PT -ro -si -sk -sl -sq -sr -sv -sv_SE -tr -uk -zh -zh_CN -zh_TW" 18 kB

Total: 1 package (1 reinstall), Size of downloads: 18 kB

профиль есесно был создан заново, то бишь старый "~/.mozilla/" был безбожно леквидирован. были маленькие заминки в самом начале во время установки расширений, но после все идет ровно

Ясно. Значит

Ясно. Значит предстоит жизнь с чистого листа )))

А для чего используется флаг mozdevelop?

-= Concordia victoriam gignit =-

Firebug, DOM Inspector и

Firebug, DOM Inspector и прочее в том же духе


Пожалуйста, не описывайте своё железо в подписи

Блин, полжизни

Блин, полжизни зазря прошло ))
Пошёл пересобирать

-= Concordia victoriam gignit =-

Бинарник 3.0.2 с

Бинарник 3.0.2 с сайта файрфокса - те же грабли.

-= Concordia victoriam gignit =-

Интересно, это имеет отношение к проблеме?

Что означает pre-stripped files?
Ну и несомненно смущает malloc в названии библиотеки libjemalloc.so - вылет всё-таки связан с загрузкой библиотек/компонентов в память

* QA Notice: Pre-stripped files found:
* /var/tmp/portage/www-client/mozilla-firefox-3.0.1/image/usr/lib/mozilla-firefox/firefox
strip: i686-pc-linux-gnu-strip --strip-unneeded -R .comment
usr/lib/mozilla-firefox/libjemalloc.so
usr/lib/mozilla-firefox/components/libbrowserdirprovider.so
usr/lib/mozilla-firefox/components/libbrowsercomps.so
usr/lib/mozilla-firefox/components/libnkgnomevfs.so

-= Concordia victoriam gignit =-

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".