Created attachment 6481 [details] Лог транзакции apt После обновления до firefox-44 (прилагаю полный лог транзакции apt) на многих сайтах стал падать с ошибкой сегментации плагин флеша (он обновлялся последний раз две недели назад, до 3:11.2.202.559-alt58). Сообщение в логе при этом такие: =8<=========================================================================================================================== root@teer# dmesg -T|grep -i segfault [Mon Feb 1 08:43:18 2016] plugin-containe[3465]: segfault at 0 ip b34b27a8 sp bf83b2dc error 6 in libmozgtk.so[b34b2000+1000] [Mon Feb 1 08:43:19 2016] plugin-containe[3476]: segfault at 0 ip b350f7a8 sp bff43acc error 6 in libmozgtk.so[b350f000+1000] [Mon Feb 1 08:48:24 2016] plugin-containe[3810]: segfault at 0 ip b34a67a8 sp bff72cbc error 6 in libmozgtk.so[b34a6000+1000] [Mon Feb 1 08:48:25 2016] plugin-containe[3821]: segfault at 0 ip b355d7a8 sp bf858d6c error 6 in libmozgtk.so[b355d000+1000] [Mon Feb 1 10:51:37 2016] plugin-containe[8394]: segfault at 0 ip b34bd754 sp bfd9612c error 6 in libmozgtk.so[b34bd000+1000] =8<=========================================================================================================================== Проявляется на x86_64/std-def и i586/std-pae. Есть дампы падений, но они весят по полтора мегабайта в сжатом виде. Сходу в них я ничего не увидел, gdb показывает только адреса памяти. Не уверен, кто здесь виноват, плагин, firefox или кто-то ещё.
От расширений firefox не зависит, проявляется на новом пустом профиле браузера. P.S.: что-то пока не нашел, где бы плагин не крошился. Т.е. от сайта вроде бы не зависит.
Возможно, это связано с тем, что firefox перешёл на GTK3.
2legion: я смотрю, зависимость на gtk2 там никуда не делась (firefox-44 зависит от libgtk-x11-2.0.so.0). А можно для тестов как-то обратно переключиться на gtk2? Что-то сходу не нашел способа.
Сейчас у них вот такие зависимости: $ rpmquery -R firefox |grep gtk |cut -d\ -f1 libgtk-3.so.0()(64bit) libgtk-x11-2.0.so.0()(64bit) Попробуйте ванильную версию: http://releases.mozilla.org/pub/firefox/releases/44.0/ Она ещё пока на gtk2. Официальный переход на gtk3 будет в следующей версии.
Идеально конечно было бы переключиться в рантайме или на крайняк пересобрать srpm/gear с ключом/патчем. Попробую потыкать официальный релиз...
Попробовал официальную сборку (с http://releases.mozilla.org/pub/firefox/releases/44.0/linux-i686/en-US/), но т.к. сходу не понял, как заставить её использовать уже установленный флеш, пришлось скачать и установить и официальный бинарный пакет флеша. С ними у меня все проверенный сайты на флеше работали без нареканий.
Для запуска установленного в системе flash нужно починить это: https://bugzilla.altlinux.org/show_bug.cgi?id=30572 Лёш, может исправишь уже эту ошибку ? тривиально же
(In reply to comment #7) > Для запуска установленного в системе flash нужно починить это: > https://bugzilla.altlinux.org/show_bug.cgi?id=30572 > > Лёш, может исправишь уже эту ошибку ? тривиально же Уже? Ты обратил внимение, что меня даже в наблюдателях нет у #30572 ? Плюс она висит на неком p6, который я не поддерживаю более чем полностью. Ок, сделаю... особенно в свете, того что NPAPI скоро оторвут совсем.
Повесить на Adobe не получится. Если сделают изменения/исправления или даже 2 разных сборки своего плагина, запакую, что будет возможно. А до тех пор firefox крайний в любом случае.
К тому же, падает наверняка только в Firefox.
Попробовал на x86_64 удалить пакетный флеш и установил официальный бинарник плагина с сайта - падает (с пакетным firefox44-gtk3).
(В ответ на комментарий №11) > Попробовал на x86_64 удалить пакетный флеш и установил официальный бинарник В пакете именно тот бинарник и лежит.
(В ответ на комментарий №4) > Она ещё пока на gtk2. Официальный переход на gtk3 будет в следующей версии. Так, может нам стоит идти по граблям после или хотя бы вместе с паровозом? IMHO нам стоит переходить на gtk3 в firefox не раньше, чем на +1 версию от апстрима. P.S. 2 Cas: в p7 такой древний gtk3, что нужно еще умудриться додуматься пытаться собирать с ним современные версии софта. У меня ff из task#149408 кроме падений вообще больше ничего не делает.
https://bugzilla.redhat.com/show_bug.cgi?id=1253086#c23 Это решение?
(In reply to comment #14) > https://bugzilla.redhat.com/show_bug.cgi?id=1253086#c23 > Это решение? Серёг, пока не знаю. Попробуем.
Вообще, то что firefox у нас подцепил системный cairo ошибка. Мозилла регулярно ломает совместимость изменяя свою внуреннюю версию и затачиваясь на эти изменения. Вот яркий пример: https://bugzilla.mozilla.org/show_bug.cgi?id=722975 Поэтому я думаю нам нужно в любом случае откатиться на внутриннюю версию cairo.
Так внутреннюю или системную cairo нужно использовать? Я запутался :-) ==8<===================================================================== teer@teer ~ $rpm -q --lastchange firefox * Ср фев 10 2016 Alexey Gladkov <legion@altlinux.ru> 44.0.1-alt1 - New release (44.0.1). - Use system cairo. ==8<=====================================================================
(In reply to comment #17) > Так внутреннюю или системную cairo нужно использовать? Я запутался :-) Сборка 44.0.1-alt1 работает ?
Нет, так же падает (писал об этом в https://bugzilla.altlinux.org/show_bug.cgi?id=31787).
Попробовал 44.0.2-alt2 из сизифа (на i686). Всё работает, ничего не падает.
(в смысле что флеш-плагин не падает, firefox-44.0.2 пришлось запустить из ванильной сборки, см. https://bugzilla.altlinux.org/show_bug.cgi?id=31787)
Можете попробовать флеш с этой сборкой: http://git.altlinux.org/repo/159421/ ?
На x86_64 плагин сразу падает, с такой трассировкой: =8<======================================================== Core was generated by `/usr/lib64/firefox/plugin-container /usr/lib64/browser-plugins/libflashplayer.s'. Program terminated with signal SIGSEGV, Segmentation fault. #0 gdk_window_lookup () at /usr/src/debug/firefox-44.0.2/mozilla/widget/gtk/mozgtk/mozgtk.c:585 585 STUB(gdk_window_lookup) (gdb) bt #0 gdk_window_lookup () at /usr/src/debug/firefox-44.0.2/mozilla/widget/gtk/mozgtk/mozgtk.c:585 #1 0x00007f3d7d339679 in mozilla::plugins::PluginInstanceChild::AnswerNPP_SetWindow (this=0x7f3d6b03d800, aWindow=...) at /usr/src/debug/firefox-44.0.2/mozilla/dom/plugins/ipc/PluginInstanceChild.cpp:1197 #2 0x00007f3d7c6c3f6c in mozilla::plugins::PPluginInstanceChild::OnCallReceived (this=0x7f3d6b03d800, msg__=..., reply__=@0x7ffcde51e5a0: 0x0) at /usr/src/debug/firefox-44.0.2/mozilla/objdir/ipc/ipdl/PPluginInstanceChild.cpp:2160 #3 0x00007f3d7c6ca853 in mozilla::plugins::PPluginModuleChild::OnCallReceived (this=this@entry=0x7f3d6b012830, msg__=..., reply__=@0x7ffcde51e5a0: 0x0) at /usr/src/debug/firefox-44.0.2/mozilla/objdir/ipc/ipdl/PPluginModuleChild.cpp:1202 #4 0x00007f3d7c62d17e in mozilla::ipc::MessageChannel::DispatchInterruptMessage (this=this@entry=0x7f3d6b012898, aMsg=..., stackDepth=stackDepth@entry=0) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/glue/MessageChannel.cpp:1456 #5 0x00007f3d7c62e641 in mozilla::ipc::MessageChannel::DispatchMessage (this=this@entry=0x7f3d6b012898, aMsg=...) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/glue/MessageChannel.cpp:1306 #6 0x00007f3d7c62eeb1 in mozilla::ipc::MessageChannel::OnMaybeDequeueOne (this=0x7f3d6b012898) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/glue/MessageChannel.cpp:1279 #7 0x00007f3d7c617547 in MessageLoop::RunTask (this=0x7ffcde51fa68, task=0x7f3d6b0eca60) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/chromium/src/base/message_loop.cc:364 #8 0x00007f3d7c61b9d9 in MessageLoop::DeferOrRunPendingTask (this=<optimized out>, pending_task=...) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/chromium/src/base/message_loop.cc:372 #9 0x00007f3d7c61bae7 in MessageLoop::DoWork (this=0x7ffcde51fa68) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/chromium/src/base/message_loop.cc:459 #10 0x00007f3d7c614e81 in base::MessagePumpForUI::HandleDispatch (this=0x7f3d6b0484c0) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/chromium/src/base/message_pump_glib.cc:261 #11 0x00007f3d7c614eb4 in (anonymous namespace)::WorkSourceDispatch (source=<optimized out>, unused_func=<optimized out>, unused_data=<optimized out>) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/chromium/src/base/message_pump_glib.cc:106 #12 0x00007f3d75744047 in g_main_dispatch (context=0x7f3d6b06f500) at gmain.c:3154 #13 g_main_context_dispatch (context=context@entry=0x7f3d6b06f500) at gmain.c:3769 #14 0x00007f3d75744278 in g_main_context_iterate (context=context@entry=0x7f3d6b06f500, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3840 #15 0x00007f3d7574431c in g_main_context_iteration (context=0x7f3d6b06f500, may_block=1) at gmain.c:3901 #16 0x00007f3d7c614a43 in base::MessagePumpForUI::RunWithDispatcher (this=0x7f3d6b0484c0, delegate=<optimized out>, dispatcher=<optimized out>) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/chromium/src/base/message_pump_glib.cc:192 #17 0x00007f3d7c6175a6 in RunHandler (this=<optimized out>) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/chromium/src/base/message_loop.cc:227 #18 MessageLoop::Run (this=this@entry=0x7ffcde51fa68) at /usr/src/debug/firefox-44.0.2/mozilla/ipc/chromium/src/base/message_loop.cc:201 #19 0x00007f3d7da507a9 in XRE_InitChildProcess (aArgc=<optimized out>, aArgv=<optimized out>, aGMPLoader=<optimized out>) at /usr/src/debug/firefox-44.0.2/mozilla/toolkit/xre/nsEmbedFunctions.cpp:623 #20 0x0000000000408754 in ?? () #21 0x0000000000000000 in ?? () (gdb) =8<========================================================
На i686 тоже плагин сразу падает с дампом.
http://pkgs.fedoraproject.org/cgit/rpms/firefox.git/tree/mozilla-1205199.patch не оно?
Нет. Оно уже есть в 44.0.2-alt3 и всё равно падает: http://git.altlinux.org/people/legion/packages/firefox.git?p=firefox.git;a=blob;f=mozilla-bug-1205199.patch;h=2c8c036aa12790801e7dc2155f26fb9bfe8c630c;hb=982171c8c25974233e3756fd96455dbccc568cc3 firefox собран с gtk3, но имеет gtk2 как раз для плагинов. Такое ощущение, что выбирается не та версия. Сейчас проверяю ещё одну теорию.
firefox-44.0.2-alt3 -> sisyphus: * Tue Feb 16 2016 Alexey Gladkov <legion@altlinux> 44.0.2-alt3 - Use GTK3 again. - Add RedHat patches. - Add require gst-plugins-ugly (ALT#30732). - Fix javascript crash (ALT#31787). - Fix flash player crash (ALT#31744).
(В ответ на комментарий №27) > - Add require gst-plugins-ugly (ALT#30732). Может, всё-таки gst-plugins-ugly1.0 ? $strings /usr/lib64/firefox/libxul.so | grep libgstreamer libgstreamer-1.0.so.0
(In reply to comment #28) > (В ответ на комментарий №27) > > - Add require gst-plugins-ugly (ALT#30732). > Может, всё-таки gst-plugins-ugly1.0 ? > > $strings /usr/lib64/firefox/libxul.so | grep libgstreamer > libgstreamer-1.0.so.0 Блин, промазал. Спасибо!
В 44.0.2-alt3 всё работает. Спасибо за терпение и труд!