Bug 22885 - Замирания firefox при запуске контекстного меню и файлового меню окна
Summary: Замирания firefox при запуске контекстного меню и файлового меню окна
Status: CLOSED WORKSFORME
Alias: None
Product: Sisyphus
Classification: Development
Component: firefox (show other bugs)
Version: unstable
Hardware: x86 Linux
: P2 major
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL: https://bugzilla.mozilla.org/show_bug...
Keywords: usability
Depends on:
Blocks: 23109 23155
  Show dependency tree
 
Reported: 2010-02-03 20:56 MSK by nwtour
Modified: 2014-02-16 15:57 MSK (History)
17 users (show)

See Also:


Attachments
nsSound fix v1 (1.79 KB, patch)
2010-07-26 14:42 MSD, Alexey Gladkov
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description nwtour 2010-02-03 20:56:00 MSK
Система текущий сизиф обновляемый с давних времен

После запуска firefox при нажатии правой кнопки мыши браузер молчит в течении 5-7 секунд. Тоже самое при нажатии Закладки Инструменты итд. Систему не грузит, но окно браузера зависает для всех действий. Мышь и другие окна доступны.

Создание нового пользователя в системе соответственно с чистым профилем не помогает.

В окно консоли в момент замирания появляются надписи:
socket(): Семейство адресов не поддерживается протоколом 

Удаление всех старых пакетов rpmorphan не помогло.

Запускается из kde 4.

Напишите приложу логи какие нужно.
Comment 1 nwtour 2010-02-03 20:58:04 MSK
Добавлю - переключение между вкладками происходит быстро, но контекстное меню вкладок также замирает.
Comment 2 Sir Raorn 2010-02-03 21:08:28 MSK
Попробуйте удолить pulseaudio-daemon...
Comment 3 nwtour 2010-02-03 21:54:10 MSK
pulseaudio-daemon у меня не стоял.
Самое интересное, что после установки и последующего удаления все стало реактивным.
Либо помогло удаление pulseaudio-utils
В любом случае спасибо.
Comment 4 Alexei V. Mezin 2010-02-03 23:12:03 MSK
(В ответ на комментарий №3)
.
> Либо помогло удаление pulseaudio-utils

Мне не помогло. При установке pulseaudio-daemon, при старте ФФ запускается процесс pulseaudio, и пока он запущен, все работает. Но стоит этот процесс убрать, как ФФ начинает тупить.

Так что либо надо официально признать, что новый ФФ не работает без pulseaudio, либо отрывать это кривоподелие при компиляции.
Comment 5 Alexey Gladkov 2010-02-03 23:39:51 MSK
$ apt-cache depends xulrunner-192-libs |egrep -v 'Depends:|Obsoletes:' |sort -u
    fontconfig-2.8.0-alt4
    glib2-2.22.4-alt1
    glibc-core-6:2.11.1-alt2
    glibc-pthread-6:2.11.1-alt2
    libX11-3:1.3.3-alt1
    libXrender-0.9.5-alt1
    libXt-1.0.7-alt1
    libalsa-1:1.0.22-alt1
    libatk-1.28.0-alt1
    libcairo-1:1.8.8-alt4
    libfreetype-2.3.11-alt2
    libgcc4.4-4.4.3-alt1
    libgtk+2-2.18.6-alt1
    libgtk+2-common-2.18.6-alt1
    libhunspell-1.2.8-alt1
    libjpeg-1:6b-alt10
    libnspr-1:4.8.2-alt1
    libnss-3.12.6.0-alt1.20100116
    libpango-1.26.2-alt1
    libsqlite3-3.6.22-alt1
    libstdc++4.4-4.4.3-alt1
    zlib-1.2.3-alt5

firefox (xulrunner) собран с libalsa, а никак не с pulseaudio. Нужно разобраться почему она себя так ведёт.

Валер, можешь пояснить ситуацию ?
Comment 6 ReMaks 2010-02-03 23:53:13 MSK
а у меня ФФ закладки (вкоадки с закладками, и меню) примерно по 5 сек открывает...
Comment 7 nwtour 2010-02-04 00:25:54 MSK
Судя по strace firefox вначале обращается к libcanberra:

open("/usr/lib/libcanberra-0.22/libcanberra-pulse.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libcanberra-0.22/libcanberra-pulse.so", O_RDONLY) = 21
open("/home/nwtour/.pulse/client.conf", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/etc/pulse/client.conf", O_RDONLY|O_LARGEFILE) = 58

А потом уже к pulse. Может от туда что нибудь запускает или предлагает ему запустить?
(в рамках бреда)
Comment 8 nwtour 2010-02-04 00:29:08 MSK
Во всяком случае удаление /usr/lib/libcanberra-0.22/libcanberra-pulse.so мне помогло :-)
Надеюсь в последний раз за сегодня.
Comment 9 Alexey Gladkov 2010-02-04 00:35:39 MSK
(В ответ на комментарий №8)
> Во всяком случае удаление /usr/lib/libcanberra-0.22/libcanberra-pulse.so мне
> помогло :-)
> Надеюсь в последний раз за сегодня.

Прикол в том, что у меня в системе:

$ rpmquery -a |grep -c libcanberra
0

$ rpmquery -a |grep pulseaudio
libpulseaudio-0.9.19-alt2

и ничего не тормозит.
Comment 10 nwtour 2010-02-04 00:40:49 MSK
(В ответ на комментарий №9)
> 
> Прикол в том, что у меня в системе:
> 
> $ rpmquery -a |grep -c libcanberra
> 0
> 
> $ rpmquery -a |grep pulseaudio
> libpulseaudio-0.9.19-alt2
> 
> и ничего не тормозит.

Почему прикол?
Если поставить libcanberra и убрать pulseaudio-daemon то будет тормозить.

Ее многие используют:
[nwtour@devel ~]$ sudo apt-get remove libcanberra
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
  e17 libXp libecore libedb libedbus libedje libefreet libembryo libevas
Следующие пакеты будут УДАЛЕНЫ:
  evolution gdm gdm-user-switch-applet gnome-applets gnome-applets-accessx-status
  gnome-applets-charpick gnome-applets-common gnome-applets-drivemount gnome-applets-geyes
  gnome-applets-gswitchit gnome-applets-gswitchit-plugins gnome-applets-gweather
  gnome-applets-mini-commander gnome-applets-multiload gnome-applets-stickynotes gnome-control-center
  gnome-minimal gnome-panel gnome-screenshot gnome-session gnome-settings-daemon gnome-theme-crux
  gnome-theme-glossy gnome-themes-default gnome-utils libcanberra libcanberra-gtk2 metacity
  metacity-gnome metacity-theme-atlanta metacity-theme-bright metacity-theme-crux metacity-theme-esco
  metacity-theme-gorilla metacity-theme-metabox metacity-theme-simple metacity-themes-default
Comment 11 nwtour 2010-02-04 00:44:05 MSK
(В ответ на комментарий №9)
> (В ответ на комментарий №8)
> > Во всяком случае удаление /usr/lib/libcanberra-0.22/libcanberra-pulse.so мне
> > помогло :-)
> > Надеюсь в последний раз за сегодня.
> 
> Прикол в том, что у меня в системе:
> 
> $ rpmquery -a |grep -c libcanberra
> 0
> 
> $ rpmquery -a |grep pulseaudio
> libpulseaudio-0.9.19-alt2
> 
> и ничего не тормозит.

Видимо он ищет вначале библиотеки canberra, а уже потом alsa.
Вот и получается что если canberra стоит то она первая находится.
А уже она отдает свой plugin для работы с pulse

/usr/lib/libcanberra-0.22/libcanberra-alsa.so
/usr/lib/libcanberra-0.22/libcanberra-gstreamer.so
/usr/lib/libcanberra-0.22/libcanberra-multi.so
/usr/lib/libcanberra-0.22/libcanberra-null.so
/usr/lib/libcanberra-0.22/libcanberra-pulse.so
Comment 12 Alexei V. Mezin 2010-02-04 00:50:32 MSK
(В ответ на комментарий №7)
> Судя по strace firefox вначале обращается к libcanberra:
>

опаньки! После удаления этой библиотеки в ФФ заработали звуки через ALSA, и пропало торможение перед появлением окна-предупреждения, а не только при открытии меню и не только в версии 3.6! Победа разума состоялась!
Comment 13 Alexey Gladkov 2010-02-04 01:05:47 MSK
Действительно, xulrunner пробудет эту библиотеку:

http://git.altlinux.org/people/legion/packages/mozilla.org.git?p=mozilla.org.git;a=blob;f=widget/src/gtk2/nsSound.cpp;h=69ff32e6655d5f26bc955400ed2663196e8fb200;hb=0dfdf78bf4f3ab6b6d6e22129413831995fedb14#l170

"Должен остаться только один" (с)
Comment 15 ReMaks 2010-02-04 01:37:52 MSK
(В ответ на комментарий №10)

> [nwtour@devel ~]$ sudo apt-get remove libcanberra



$ sudo apt-get remove libcanberra
Unrequested changes are needed to execute this operation.
The following packages will be REMOVED:
  claws-mail-plugin-notification gnome-power-manager gnome-session gnome-settings-daemon libcanberra libcanberra-gtk2 sawfish-gnome
Comment 16 nwtour 2010-02-04 02:21:35 MSK
(В ответ на комментарий №15)
> $ sudo apt-get remove libcanberra
> Unrequested changes are needed to execute this operation.
> The following packages will be REMOVED:
>   claws-mail-plugin-notification gnome-power-manager gnome-session
> gnome-settings-daemon libcanberra libcanberra-gtk2 sawfish-gnome

Это предложение избавиться от ноши?

$ sudo rpm -e libcanberra
ошибка: удаление этих пакетов нарушит зависимости:
        libcanberra = 0.22-alt1 нужен для libcanberra-gtk2-0.22-alt1
        libcanberra.so.0   нужен для gdm-2.28.2-alt1
        libcanberra.so.0   нужен для gnome-control-center-2.28.1-alt2
        libcanberra.so.0   нужен для gnome-screenshot-2.28.2-alt1
        libcanberra.so.0   нужен для libcanberra-gtk2-0.22-alt1
        libcanberra.so.0   нужен для metacity-2.28.1-alt1

Незнаю. Мне эти штуки иногда нужны.
Лично я бы разделил libcanberra - libcanberra-pulse и libcanberra-alsa и забыл бы об этой проблеме. И в apt-cache search легко искать будет.
Comment 17 ReMaks 2010-02-04 02:36:23 MSK
(В ответ на комментарий №16)
> Это предложение избавиться от ноши?

нет

это о том,если у меня попробовать это "грохнуть", то без чего-то остаемся...

в вашем случае больше, в моем - меньше...

но я не использую кде и гном (т.е. их библиотеки конечно установлены, но оснойвной DE - xfce)
Comment 18 Valery Inozemtsev 2010-02-04 10:22:27 MSK
(В ответ на комментарий №5)
[..]
> firefox (xulrunner) собран с libalsa, а никак не с pulseaudio. Нужно
> разобраться почему она себя так ведёт.
> 
> Валер, можешь пояснить ситуацию ?

у меня весь звук идет через pulse, даже если бы firefox выводил бы его через oss, он все равно шел бы в pulse
Comment 19 Alexey Gladkov 2010-04-14 13:42:20 MSD
*** Bug 23109 has been marked as a duplicate of this bug. ***
Comment 20 Alexey Gladkov 2010-04-14 13:45:10 MSD
В общем, у меня нет другого выбора как оторвать использование libcanberra из firefox. Всякие системные звуки в firefox сломаются точно. Что сломается ещё не знаю, но другого выхода у меня нет.
Comment 21 Yuri N. Sedunov 2010-04-14 14:18:09 MSD
(In reply to comment #20)
> В общем, у меня нет другого выбора как оторвать использование libcanberra из
> firefox. Всякие системные звуки в firefox сломаются точно. Что сломается ещё не
> знаю, но другого выхода у меня нет.

ca_context_set_driver ()

int                 ca_context_set_driver               (ca_context *c,
                                                         const char *driver);
Specify the backend driver used. This function may not be called again after ca_context_open() suceeded. This function might suceed even when the specified driver backend is not available. Use ca_context_open() to find out whether the backend is available.

c :

the context to change the backend driver for
driver :

the backend driver to use (e.g. "alsa", "pulse", "null", ...)
Returns :

0 on success, negative error code on error.
Comment 22 Alexey Gladkov 2010-04-14 15:08:39 MSD
После обсуждения с aris@ мы договорились, что firefox будет играть всегда через alsa плагин и этого будет достаточно.
Comment 23 Michael Shigorin 2010-04-15 12:10:25 MSD
Это полечит самый неприятный (mis)use case, но смысл в библиотеке, если чинить всех клиентов...
Comment 24 Alexander Bokovoy 2010-07-25 13:51:10 MSD
libcanberra известна своими проблемами, но я хотел бы тут обратить внимание на несколько вещей.
1. Firefox пытается добраться до символов в библиотеках по возможности как можно позже, к моменту, когда это будет нужно. Причем в некоторых случаях он не знает точного имени библиотеки и делает масштабный поиск через PR_FindFunctionSymbolAndLibrary(). Для дистрибутива такой вариант, мягко говоря, бессмысленнен. Познее связывание тут лучше заменить на ранее, на старте.
2. Если мы решаем, что какой-то вариант вывода звука у нас является системным (в RedHat и других это Pulse), то необходимо обеспечить полную работоспособность. Если мы выбираем alsa, то плагин для alsa, который перенаправляет все в Pulse, имеет свои -- и достаточно серьезные -- проблемы с латентностью, которых лишены прямые клиенты pulse.
3. Необходимо модифицировать libcanberra, чтобы в рамках дистрибутива выбор по умолчанию был зафиксирован и она занималась бы поиском правильного драйвера только, если об этом ее попросил клиент через ca_context_set_driver().
Comment 25 Alexey Gladkov 2010-07-26 14:42:39 MSD
Created attachment 4465 [details]
nsSound fix v1
Comment 26 Radik Usupov 2011-02-23 09:54:15 MSK
Доброго времени.
На чем итоге закончилось обсуждение?
Comment 27 AEN 2011-06-24 03:37:55 MSK
Воспроизводится у кого-нибудь?
Comment 28 Sergey Shilov 2011-06-24 10:01:01 MSK
(В ответ на комментарий №27)
> Воспроизводится у кого-нибудь?
У меня нет.
Comment 29 AEN 2011-06-24 14:06:22 MSK
(В ответ на комментарий №28)
> (В ответ на комментарий №27)
> > Воспроизводится у кого-нибудь?
> У меня нет.

И у меня не воспроизводится.