Bug 31744 - Флеш-плагин падает с ошибкой сегментации после обновления Firefox
: Флеш-плагин падает с ошибкой сегментации после обновления Firefox
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/firefox)
: unstable
: all Linux
: P3 major
Assigned To:
:
: https://bugzilla.mozilla.org/show_bug...
:
:
:
  Show dependency tree
 
Reported: 2016-02-01 06:55 by
Modified: 2016-02-20 08:42 (History)


Attachments
Лог транзакции apt (672 bytes, text/plain)
2016-02-01 06:55, Evgenii Terechkov
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2016-02-01 06:55:42
Created an attachment (id=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 или кто-то ещё.
------- Comment #1 From 2016-02-01 08:05:41 -------
От расширений firefox не зависит, проявляется на новом пустом профиле браузера.

P.S.: что-то пока не нашел, где бы плагин не крошился. Т.е. от сайта вроде бы
не зависит.
------- Comment #2 From 2016-02-01 11:27:47 -------
Возможно, это связано с тем, что firefox перешёл на GTK3.
------- Comment #3 From 2016-02-01 11:42:08 -------
2legion: я смотрю, зависимость на gtk2 там никуда не делась (firefox-44 зависит
от libgtk-x11-2.0.so.0). А можно для тестов как-то обратно переключиться на
gtk2? Что-то сходу не нашел способа.
------- Comment #4 From 2016-02-01 12:10:16 -------
Сейчас у них вот такие зависимости:

$ 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 будет в следующей версии.
------- Comment #5 From 2016-02-01 12:38:02 -------
Идеально конечно было бы переключиться в рантайме или на крайняк пересобрать
srpm/gear с ключом/патчем.

Попробую потыкать официальный релиз...
------- Comment #6 From 2016-02-01 13:04:27 -------
Попробовал официальную сборку (с
http://releases.mozilla.org/pub/firefox/releases/44.0/linux-i686/en-US/), но
т.к. сходу не понял, как заставить её использовать уже установленный флеш,
пришлось скачать и установить и официальный бинарный пакет флеша.

С ними у меня все проверенный сайты на флеше работали без нареканий.
------- Comment #7 From 2016-02-01 13:06:13 -------
Для запуска установленного в системе flash нужно починить это:
https://bugzilla.altlinux.org/show_bug.cgi?id=30572

Лёш, может исправишь уже эту ошибку ? тривиально же
------- Comment #8 From 2016-02-01 13:41:58 -------
(In reply to comment #7)
> Для запуска установленного в системе flash нужно починить это:
> https://bugzilla.altlinux.org/show_bug.cgi?id=30572
> 
> Лёш, может исправишь уже эту ошибку ? тривиально же

Уже? Ты обратил внимение, что меня даже в наблюдателях нет у #30572 ? Плюс она
висит на неком p6, который я не поддерживаю более чем полностью.

Ок, сделаю... особенно в свете, того что NPAPI скоро оторвут совсем.
------- Comment #9 From 2016-02-01 14:59:32 -------
Повесить на Adobe не получится. Если сделают изменения/исправления или даже 2
разных сборки своего плагина, запакую, что будет возможно. А до тех пор firefox
крайний в любом случае.
------- Comment #10 From 2016-02-01 15:00:09 -------
К тому же, падает наверняка только в Firefox.
------- Comment #11 From 2016-02-01 17:53:04 -------
Попробовал на x86_64 удалить пакетный флеш и установил официальный бинарник
плагина с сайта -  падает (с пакетным firefox44-gtk3).
------- Comment #12 From 2016-02-01 18:08:32 -------
(В ответ на комментарий №11)
> Попробовал на x86_64 удалить пакетный флеш и установил официальный бинарник
В пакете именно тот бинарник и лежит.
------- Comment #13 From 2016-02-03 13:04:04 -------
(В ответ на комментарий №4)
> Она ещё пока на gtk2. Официальный переход на gtk3 будет в следующей версии.
Так, может нам стоит идти по граблям после или хотя бы вместе с паровозом?
IMHO нам стоит переходить на gtk3 в firefox не раньше, чем на +1 версию от
апстрима.

P.S.
2 Cas: в p7 такой древний gtk3, что нужно еще умудриться додуматься пытаться
собирать с ним современные версии софта. У меня ff из task#149408 кроме падений
вообще больше ничего не делает.
------- Comment #14 From 2016-02-03 13:45:12 -------
https://bugzilla.redhat.com/show_bug.cgi?id=1253086#c23
Это решение?
------- Comment #15 From 2016-02-03 13:59:44 -------
(In reply to comment #14)
> https://bugzilla.redhat.com/show_bug.cgi?id=1253086#c23
> Это решение?

Серёг, пока не знаю. Попробуем.
------- Comment #16 From 2016-02-03 14:04:25 -------
Вообще, то что firefox у нас подцепил системный cairo ошибка. Мозилла регулярно
ломает совместимость изменяя свою внуреннюю версию и затачиваясь на эти
изменения. Вот яркий пример:

https://bugzilla.mozilla.org/show_bug.cgi?id=722975

Поэтому я думаю нам нужно в любом случае откатиться на внутриннюю версию cairo.
------- Comment #17 From 2016-02-12 12:23:54 -------
Так внутреннюю или системную 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<=====================================================================
------- Comment #18 From 2016-02-12 12:53:43 -------
(In reply to comment #17)
> Так внутреннюю или системную cairo нужно использовать? Я запутался :-)

Сборка 44.0.1-alt1 работает ?
------- Comment #19 From 2016-02-12 13:10:09 -------
Нет, так же падает (писал об этом в
https://bugzilla.altlinux.org/show_bug.cgi?id=31787).
------- Comment #20 From 2016-02-16 07:44:19 -------
Попробовал 44.0.2-alt2 из сизифа (на i686). Всё работает, ничего не падает.
------- Comment #21 From 2016-02-16 17:05:36 -------
(в смысле что флеш-плагин не падает, firefox-44.0.2 пришлось запустить из
ванильной сборки, см. https://bugzilla.altlinux.org/show_bug.cgi?id=31787)
------- Comment #22 From 2016-02-17 18:12:56 -------
Можете попробовать флеш с этой сборкой:

http://git.altlinux.org/repo/159421/

?
------- Comment #23 From 2016-02-17 19:23:25 -------
На 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<========================================================
------- Comment #24 From 2016-02-18 04:58:08 -------
На i686 тоже плагин сразу падает с дампом.
------- Comment #25 From 2016-02-18 15:07:11 -------
http://pkgs.fedoraproject.org/cgit/rpms/firefox.git/tree/mozilla-1205199.patch
не оно?
------- Comment #26 From 2016-02-18 15:23:53 -------
Нет. Оно уже есть в 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 как раз для плагинов. Такое ощущение, что
выбирается не та версия. Сейчас проверяю ещё одну теорию.
------- Comment #27 From 2016-02-19 06:10:26 -------
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).
------- Comment #28 From 2016-02-19 11:02:20 -------
(В ответ на комментарий №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
------- Comment #29 From 2016-02-19 11:09:03 -------
(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

Блин, промазал. Спасибо!
------- Comment #30 From 2016-02-20 08:42:45 -------
В 44.0.2-alt3 всё работает. Спасибо за терпение и труд!