Продолжаем развивать тему с сервером IPTV. После того, как все уже было готово и нормально работало, столкнулись мы с новой проблемой, на этот раз, уже с VLC-плеером. Суть проблемы заключалась в том, что плеер падал с ошибкой сегментирования (segmentation fault) при попытке остановки воспроизведения, причем совершенно не важно было, по какой причине это происходит: будь то остановка по кнопке «стоп», разрыв связи с сервером IPTV или переключение между позициями плейлиста. Совершенно ясно, что какая-то проблема здесь непосредственно с самим пакетом, но в чем именно она заключается?
Конечно же, я активно искал решение проблемы на забугорных форумах. Там посоветовали при запуске VLC явно указывать ему, что выходить при завершении не нужно. Я знаю, конечно, что есть такой функционал в плеере, как автоматический выход при завершении воспроизведения, но это явно не тот случай, так как в настройках плеера все указано так, как и должно быть, да и выход происходит не добровольно, а со ссылкой на ошибку. Попробовал добавить пару раз соответствующий флаг, после того, как ничего не произошло, пошел искать решений дальше (о флагах ничего не пишу, но кому интересно, то все есть в мануалах к VLC).
После поисков на форумах поддержки дистрибутивов нашел еще одно интересное предложение. Что правда, в причинах там было аварийное завершение прямо после запуска VLC, а не при остановке воспроизведения, но я решил, что может помочь. Суть заключалась в обновлении микрокода процессора, который в Debian обеспечивается установкой пакета «intel-microcode». После установки данного пакета и перезагрузки ничегошеньки не изменилось. «Истина где-то рядом, — подумал я, нужно продолжать поиски».
Действительно, истина оказалась на самой поверхности. Падение плеера происходит из-за нестабильного пакета «libwebkitgtl-1.0.0». Несмотря на наличие в системе его третьей версии, в VLC используется именно сбоящая первая. В итоге проблема была решена путем удаления из системы пакета «libwebkitgtl-1.0.0» (при удалении указывать именно так, с номером версии), что, однако, потянуло за собой еще и «gimp» с «gnome». «Gimp» на сервере, ясное дело, не используется, так что невелика потеря. То же самое и «gnome» — на нашем сервере используется «gnome-classic», в результате чего никаких изменений такие зависимости за собой не потянули.