LINUX.ORG.RU

Как приручить лису?

 , ,


0

1

Ув. специалисты по bash скриптингу, подскажите реализацию идеи. В общем, firefox (64 bit) регулярно и без видимых причин зависает в памяти. Т.е. отключается, но остается в ней в виде процесса (еще и загружая одно из ядер процессора на 100%). Его можно довольно легко убить через killall, но сие уже начало задалбывать. Как бы автоматизировать эту процедуру?

Насчет лисы - аддоны отключал, плагины отключены все время. Похоже, что это у нее в последних версиях такая болезнь неизлечимая.

Нужно написать скрипт, чтобы запускал, а после выключения автоматически гасил рыжую бестию, если она опять зависнет в памяти. Есть какие-нибудь идеи?

Система: Linux Mint x86_64, Firefox 27 из репозиториев.

ПС: в bash скриптинге разбираюсь слабо (как-то почитывал книжку по нему, но и четверти не осилил), потому и спрашиваю.

Похоже, что это у нее в последних версиях такая болезнь неизлечимая.

Решение очевидно

Deleted
()
Ответ на: комментарий от Deleted

Угу. Сижу через хромого. Но больно уж она удобная. А виснет в памяти, собака, даже в винде, что у меня на нетбуке стоит.

gill_beits ★★★★
() автор топика

Есть какие-нибудь идеи?

Багрепортами заваливать?

Eddy_Em ☆☆☆☆☆
()

Ты ничего не понял, фокс работает не так!

Я бы strace'ом посмотрел где же он все таки блочится и решил корень проблемы.

baverman ★★★
()

Т.е. отключается, но остается в ней в виде процесса

покажи ps uax|grep 'firefo[x]' до и после падения.

PS: УМВР.

emulek
()
Ответ на: комментарий от Deleted

Эх, неужели придется 24-ую ставить? Бида-пичаль...

gill_beits ★★★★
() автор топика
Ответ на: комментарий от Deleted

Не обновляй FF и будет тебе счастье.

Совет от бывалого необновлятора, да. Четыре года успешных необновлений! Силен!

baverman ★★★
()
Ответ на: комментарий от emulek

Не, ты не понял, он не падает. Gui закрывается, а процесс остается в памяти. Видимых причинно-следственных связей не наблюдается. Так что я тебе проблему сейчас не воспроизведу. ps aux | grep firefox, конечно, смотрел, оттуда и узнал, что он целое ядро у проца отжирает в такой ситуации.

gill_beits ★★★★
() автор топика
Ответ на: комментарий от megabaks

и как ты предлагаешь отличить зависон от очень упорного рытья норы?

В том-то и проблема. Простая последовательность команд, вроде firefox && killall firefox, работать не будет. Вот и думаю, как быть?

gill_beits ★★★★
() автор топика

Похоже, что это у нее в последних версиях такая болезнь неизлечимая.

На куче компов с разными дистрами ни разу не замечено. Так что проверяй свою систему — создай нового пользователя чисто под файрфокс, запускай в чистом профиле, проверяй застрявший процесс strace'ом и т.д.

redgremlin ★★★★★
()

C 26 версии такая погань началась. Что делать - неведомо. Так чтоподдержу любое закидывание багрепортами.

Akamanah ★★★★★
()
Ответ на: комментарий от gill_beits

Не, ты не понял, он не падает.

Это же батек, его первое сообщение никогда по делу не бывает.

baverman ★★★
()
Ответ на: комментарий от baverman

Вот вывод strace при выключении лисы:

 shutdown(4, SHUT_RDWR)                  = 0
close(4)                                = 0
sigaltstack(NULL, {ss_sp=0x7f83b66b4000, ss_flags=0, ss_size=8192}) = 0
sigaltstack({ss_sp=0x7f83b66df020, ss_flags=SS_DISABLE, ss_size=140203613676836}, NULL) = 0
rt_sigaction(SIGSEGV, {SIG_DFL, [], SA_RESTORER, 0x7f83b75f0bb0}, NULL, 8) = 0
rt_sigaction(SIGABRT, {SIG_DFL, [], SA_RESTORER, 0x7f83b75f0bb0}, NULL, 8) = 0
rt_sigaction(SIGFPE, {0x7f83b29748df, [], SA_RESTORER|SA_STACK|SA_RESTART|SA_SIGINFO, 0x7f83b75f0bb0}, NULL, 8) = 0
rt_sigaction(SIGILL, {SIG_DFL, [], SA_RESTORER, 0x7f83b75f0bb0}, NULL, 8) = 0
rt_sigaction(SIGBUS, {SIG_DFL, [], SA_RESTORER, 0x7f83b75f0bb0}, NULL, 8) = 0
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
close(8)                                = 0
close(7)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

Вроде, все по нулям закрылось. Постоянно strace использовать не выйдет - тормозить firefox с ним начинает сильно.

gill_beits ★★★★
() автор топика

Диких животных приручить можно, но потом с ними проблем нахватаетесь. Если держать лису не в диких условиях, то нужно сделать ей вольер.

Deathstalker ★★★★★
()
Ответ на: комментарий от Deathstalker

сделать ей вольер

На самом деле, я ведь просто хочу ее убить. Но не сам, а чтобы автоматически.

gill_beits ★★★★
() автор топика
Ответ на: комментарий от gill_beits

Вот вывод strace при выключении лисы

Надо мониторить всех детей.

Вообще схема отлова примерно такая.

* Ждешь когда в очередной раз надо закрыть лису
* Получаешь список дочерних процессов (pgrep -P `pidof firefox`), будет какой-нибудь флеш
* Натравливаешь на них и на главный процесс strace -p

Вангую кривой флеш-плагин.

baverman ★★★
()
Ответ на: комментарий от baverman

Гм... Дочерних процессов у лисы не наблюдал вообще, т.к. все плагины (в т.ч. флеш) отключены. Но за совет спасибо, попробую.

gill_beits ★★★★
() автор топика
Ответ на: комментарий от gill_beits

Не, ты не понял, он не падает. Gui закрывается, а процесс остается в памяти.

что, никакой разницы? Тогда это не ко мне. Получай список всех окошек (каким-нить костылём типа xprop), тогда смогу распарсить. Я так делал лет пять назад, там не сложно. Но сейчас уже забыл...

что он целое ядро у проца отжирает в такой ситуации.

Можно вырубать по этому критерию, если загрузка 5 раз подряд была 100% в течении 5и секунд например.

emulek
()
Ответ на: комментарий от redgremlin

На куче компов с разными дистрами ни разу не замечено. Так что проверяй свою систему — создай нового пользователя чисто под файрфокс, запускай в чистом профиле, проверяй застрявший процесс strace'ом и т.д.

++

emulek
()
Ответ на: комментарий от Deleted

Решение очевидно

Ты наверное не в курсе еще, но уже официально объявили, что решение больше не будут выпускать под Linux.

Suntechnic ★★★★★
()

Попробуй подключиться к висящему процессу с помощью gdb и посмотреть, что происходит.

nowhere
()
Ответ на: комментарий от baverman

Завис в очередной раз. strace дал что-то очень странное, при присоединении к зависшему firefox-у выдал одну строчку:

futex(0x7f2a10c763cc, FUTEX_WAIT_PRIVATE, 5, NULL

Что бы это могло значить?

gill_beits ★★★★
() автор топика
Ответ на: комментарий от Akamanah

Порылся в гугле, обнаружил много багрепортов по этому вопросу (самый ранний, еще 2010 года). Причем вот здесь пришли к интересному выводу, что во всем виновата пульса и, если ее снести, зависания прекращаются.

gill_beits ★★★★
() автор топика
Ответ на: комментарий от gill_beits

Хотя нет. Проблема куда древнее - первые посты датируются 2005 годом.

gill_beits ★★★★
() автор топика
Ответ на: комментарий от gill_beits

Что бы это могло значить?

Скорее всего основной процесс ждет когда разблочится один из потоков. Список потоков можно получить через "ps -efL" или "pstree -ap". И уже сделать strace на них.

anonymous
()
Ответ на: комментарий от gill_beits

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

Akamanah ★★★★★
()
Ответ на: комментарий от Akamanah

Хе... Сейчас наткнулся на одном форуме на человека, который во всем обвинил пакет с dri. Нет. Походу баг проявляется эпизодически, вот и видят люди решение тогда, когда его нет.

gill_beits ★★★★
() автор топика

Linux Mint

Вот в этой дряни проблема.

В бубунте, дебиане, федоре, шапке, форточке, яблоке и ведре лиса работает хорошо.
А в этой траве постоянно что-то ломается.

И вполне возможно что лиса в их репах пересобрана кривыми руками, прецедент есть.

Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 1)

Подтверждаю появление бага. Поведение точно такое же.

Сейчас Firefox 27, Gentoo Linux amd64. Pulseaudio нет.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от gill_beits

В винде вообще всё что угодно глючить может. К тому же я на 99% уверен что там очередной ЗверЦД, не от звера так от производителя.

Скорее всего ошмётки от макафе, засравшие все линки на все библиотеки в реестре, мешают. В 75% случаев на комплектных ноутбучных виндах от этого все проблемы.

Стоп.. А чего й то я по виндам консультирую?

Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 1)
Ответ на: комментарий от Goury

Винду на нетбук ставил я. Все там чисто. Лиса ванильная. Видать, действительно это в Mozilla упоролись.

gill_beits ★★★★
() автор топика
Ответ на: комментарий от megabaks

и как ты предлагаешь отличить зависон от очень упорного рытья норы?

фцытаты!

anonymous
()
Ответ на: комментарий от gill_beits

во всем виновата пульса

И почему я не удивлён? Я бы ещё selinux до кучи прибил нафиг. Совсем.

anonymous
()
Ответ на: комментарий от gill_beits

Да ешь хоть кеды хоть опенбокс хоть гнума хоть хфце хоть айсвм хоть что нравится. Выбирать дистрибутив по окнорисовалке это тупо.

Goury ★★★★★
()
Ответ на: комментарий от Goury

Ну, так расскажи мне тогда, какая принципиальная разница между минтом с корицей и убунтой с корицей, кроме красноглазия при установке «чужого» для убунты DE?

gill_beits ★★★★
() автор топика
Ответ на: комментарий от Goury

В убунте лиса не падает

И где у меня было написано, что падает? В общем, я понял. По делу тебе сказать нечего. До свидания.

gill_beits ★★★★
() автор топика
Ответ на: комментарий от gill_beits

Если бы тебе нужно было что-нибудь по делу ты бы написал багрепорт туда, где эту лису собирали.

Goury ★★★★★
()
Ответ на: комментарий от Goury

Тред ты явно не читал. Багрепорты по этой проблеме идут с 2010 года. Причем, касаются они как самого firefox, так и thunderbird. Сам баг куда древнее (первые упоминания о нем я нашел в постах аж 2005-ого года). Всплывает он постоянно. Разрабам явно лень чинить его до конца.

В общем, я даунгрейднул лису до 24 версии. Буду ждать, пока доведут до ума. Тема закрыта.

gill_beits ★★★★
() автор топика
Ответ на: комментарий от Goury

Очевидно, ты просто еще один растолстевший флудер и хам, все с тобой ясно.

gill_beits ★★★★
() автор топика

впервые про такую проблему слышу.

интересно решение, которого по видимому не будет.

пишут хамы и самодуры.

ziperman2008
()
Ответ на: комментарий от ziperman2008

интересно решение, которого по видимому не будет.

Нужно искать и фиксить этот баг. А ТС хочет костыль. Вариантов два:

1. В вечном цикле проверять наличие окон и грохать, если их не осталось. Что-то типа:

xwininfo -tree -root | grep '("Navigator" "Firefox")' | wc -l

2. Попытаться заставить браузер отлавливать момент закрытия последнего окна и запускать внешний скрипт. Получится лиса - самоубийца. %)

to gill_beits:

Пробовал скачать последнюю ночнушку, распаковать и запустить с новым профилем (ВАЖНО!) из консоли? Он, ЕМНИП, обычно кучу дебаг сообщений вываливает в процессе работы. А то может он и не виснет вообще.

$ cd firefox-nightly
$ ./firefox -ProfileManager
drake
()
Последнее исправление: drake (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.