Bug 22885 - Замирания firefox при запуске контекстного меню и файлового меню окна
: Замирания firefox при запуске контекстного меню и файлового меню окна
Status: CLOSED WORKSFORME
: Sisyphus
(All bugs in Sisyphus/firefox)
: unstable
: x86 Linux
: P2 major
Assigned To:
:
: https://bugzilla.mozilla.org/show_bug...
: usability
:
: 23109 23155
  Show dependency tree
 
Reported: 2010-02-03 20:56 by
Modified: 2014-02-16 15:57 (History)


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


Note

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


Description From 2010-02-03 20:56:00
Система текущий сизиф обновляемый с давних времен

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

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

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

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

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

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

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

Так что либо надо официально признать, что новый ФФ не работает без pulseaudio,
либо отрывать это кривоподелие при компиляции.
------- Comment #5 From 2010-02-03 23:39:51 -------
$ 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 From 2010-02-03 23:53:13 -------
а у меня ФФ закладки (вкоадки с закладками, и меню) примерно по 5 сек
открывает...
------- Comment #7 From 2010-02-04 00:25:54 -------
Судя по 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 From 2010-02-04 00:29:08 -------
Во всяком случае удаление /usr/lib/libcanberra-0.22/libcanberra-pulse.so мне
помогло :-)
Надеюсь в последний раз за сегодня.
------- Comment #9 From 2010-02-04 00:35:39 -------
(В ответ на комментарий №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 From 2010-02-04 00:40:49 -------
(В ответ на комментарий №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 From 2010-02-04 00:44:05 -------
(В ответ на комментарий №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 From 2010-02-04 00:50:32 -------
(В ответ на комментарий №7)
> Судя по strace firefox вначале обращается к libcanberra:
>

опаньки! После удаления этой библиотеки в ФФ заработали звуки через ALSA, и
пропало торможение перед появлением окна-предупреждения, а не только при
открытии меню и не только в версии 3.6! Победа разума состоялась!
------- Comment #13 From 2010-02-04 01:05:47 -------
Действительно, 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 From 2010-02-04 01:37:52 -------
(В ответ на комментарий №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 From 2010-02-04 02:21:35 -------
(В ответ на комментарий №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 From 2010-02-04 02:36:23 -------
(В ответ на комментарий №16)
> Это предложение избавиться от ноши?

нет

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

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

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

у меня весь звук идет через pulse, даже если бы firefox выводил бы его через
oss, он все равно шел бы в pulse
------- Comment #19 From 2010-04-14 13:42:20 -------
*** Bug 23109 has been marked as a duplicate of this bug. ***
------- Comment #20 From 2010-04-14 13:45:10 -------
В общем, у меня нет другого выбора как оторвать использование libcanberra из
firefox. Всякие системные звуки в firefox сломаются точно. Что сломается ещё не
знаю, но другого выхода у меня нет.
------- Comment #21 From 2010-04-14 14:18:09 -------
(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 From 2010-04-14 15:08:39 -------
После обсуждения с aris@ мы договорились, что firefox будет играть всегда через
alsa плагин и этого будет достаточно.
------- Comment #23 From 2010-04-15 12:10:25 -------
Это полечит самый неприятный (mis)use case, но смысл в библиотеке, если чинить
всех клиентов...
------- Comment #24 From 2010-07-25 13:51:10 -------
libcanberra известна своими проблемами, но я хотел бы тут обратить внимание на
несколько вещей.
1. Firefox пытается добраться до символов в библиотеках по возможности как
можно позже, к моменту, когда это будет нужно. Причем в некоторых случаях он не
знает точного имени библиотеки и делает масштабный поиск через
PR_FindFunctionSymbolAndLibrary(). Для дистрибутива такой вариант, мягко
говоря, бессмысленнен. Познее связывание тут лучше заменить на ранее, на
старте.
2. Если мы решаем, что какой-то вариант вывода звука у нас является системным
(в RedHat и других это Pulse), то необходимо обеспечить полную
работоспособность. Если мы выбираем alsa, то плагин для alsa, который
перенаправляет все в Pulse, имеет свои -- и достаточно серьезные -- проблемы с
латентностью, которых лишены прямые клиенты pulse.
3. Необходимо модифицировать libcanberra, чтобы в рамках дистрибутива выбор по
умолчанию был зафиксирован и она занималась бы поиском правильного драйвера
только, если об этом ее попросил клиент через ca_context_set_driver().
------- Comment #25 From 2010-07-26 14:42:39 -------
Created an attachment (id=4465) [details]
nsSound fix v1
------- Comment #26 From 2011-02-23 09:54:15 -------
Доброго времени.
На чем итоге закончилось обсуждение?
------- Comment #27 From 2011-06-24 03:37:55 -------
Воспроизводится у кого-нибудь?
------- Comment #28 From 2011-06-24 10:01:01 -------
(В ответ на комментарий №27)
> Воспроизводится у кого-нибудь?
У меня нет.
------- Comment #29 From 2011-06-24 14:06:22 -------
(В ответ на комментарий №28)
> (В ответ на комментарий №27)
> > Воспроизводится у кого-нибудь?
> У меня нет.

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