LINUX.ORG.RU

Как предотвратить зависание иксов от бесконечного цикла

 , , ,


0

1

Одна программа может полностью занять процессор и иксы намертво встают.

Например, открываю в vlc плейлист с заведомо неправильными путями файлов. В vlc включен повтор плейлиста. Он начинает бесконечно прыгать с файла на файл, система зависает.

Помогает только tty - htop - kill vlc. Как в будущем предотвратить такие случаи с любой программой? чтобы ни один процесс не мог занять все ядра?



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

Это не процессор занят, это xorg встаёт колом от бага в клиенте. Кстати передаю привет всем их местным любителям.

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

настолько медленнее, что я просто не вижу изменений)

Так что делать в таких случаях? Каждый раз бегать в тти не очень хочется.

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

Там ничего интересного - только логи запуска. Дрова мышки и прочая ерунда.

Ты не понял. Это я сейчас точно знаю, что у меня с этим конкретным плейлистом может зависнуть vlc. А что делать, если подобное зависание будет у другой программы, от которой я такого не буду ожидать?

hxss
() автор топика

Как в будущем предотвратить такие случаи с любой программой

ulimit -t 42

DonkeyHot ★★★★★
()

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

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

а как должен выглядеть ООМ?

Вот только что перезагрузил иксы. Запущен только guake с htop'om, занято 700мб оперативки.

1. Запускаю vlc с кривым плейлистом и установкой на повтор файлов

2. Зависает Cinnamon, htop, запущенный в guake становится бесполезным.

3. Иду в tty2: все ядра заняты на полную и синхронно волнами скачут от 88% до 98%.

4. Постепенно забивается оперативка. Жрут ее процессы vlc и процесс 'cinnamon --replace'

5. Убиваю vlc. Ядра освобождаются. 'cinnamon --replace' висит в простое с ~2Gb оперативки занятой.

6. Открываю tty7 - тут по прежнему все висит.

7. Возвращаюсь в tty2 - за дело взялся 'cinnamon --replace'. Он жрет 100% процессора(1 ядро).

8. Спустя минуту-две, после еще нескольких смен tty7-2-7, 'cinnamon --replace' закрывается, иксы отвисают, память осталась забита на ~2Gb.

Во первых vlc надо бы помечать битые файлы из плейлиста флагом и больше не пытаться их открывать, как это делают другие плееры(aimp, например). У них на форуме такое с 2006 года обсуждается.

Во вторых тут система должна заморозить плохой процесс vlc и показать пользователю окно с предложением Подождать/Убить.

Что такое ulimit, почему именно 42 и как это отразится на других процессах я тоже пока не понял.

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

Теперь тоже самое в xfce, с теми же начальными условиями:

1. Запуск vlc

2. Иксы не зависли, даже в окне vlc курсор мигает по плейлисту. Я могу наблюдать в guake - htop как vlc отжирает все больше памяти.

3. Система сама не предлагает убить процесс, но если нажать на крестик окна, то через время появится сообщение с предложением убить.

4. Убиваю через гуи системы - занятая память освобождается.

Похоже, буду перелазить на xfce.

Я так понимаю, ulimit тут уже не нужен?

hxss
() автор топика

Лично я иду в tty6, стопаю vlc, И отправляю на DESKTOP=:1 команду на перезагрузку DE, в моем случае это KDE.

Но бывает что это не помогает...

cheetah111v
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.