четверг, 3 октября 2019 г.

Падает TVHeadend при импорте программы передач

Вчера ночью упал TVHeadend. Поначалу я не придал этому значения, но после попытки перезапуска ему лучше не стало.

Oct  2 04:00:01 server systemd[1]: Stopping tvheadend.service...
Oct  2 04:00:02 server tvheadend[2227]: epgdb: saved
Oct  2 04:00:02 server tvheadend[2227]: epgdb:   brands     0
Oct  2 04:00:02 server tvheadend[2227]: epgdb:   seasons    0
Oct  2 04:00:02 server tvheadend[2227]: epgdb:   episodes   21303
Oct  2 04:00:02 server tvheadend[2227]: epgdb:   broadcasts 21303
Oct  2 04:00:02 server tvheadend[2227]: STOP: Exiting HTS Tvheadend
Oct  2 04:00:02 server tvheadend[27507]: Stopping Tvheadend: tvheadend.
Oct  2 04:00:02 server systemd[1]: Stopped tvheadend.service.
Oct  2 04:00:03 server systemd[1]: Starting tvheadend.service...
Oct  2 04:00:03 server tvheadend[27599]: Starting Tvheadend: tvheadend.
Oct  2 04:00:03 server systemd[1]: Started tvheadend.service.
Oct  2 04:00:03 server tvheadend[27605]: CRASH: Signal: 6 in PRG: /usr/bin/tvheadend (3.4.28~geb79aee~wheezy) [48254f97c14283a370187739d8ce68a10b6d9d9c] CWD: /
Oct  2 04:00:03 server tvheadend[27605]: CRASH: Fault address 0x7200006bd5 (N/A)
Oct  2 04:00:03 server tvheadend[27605]: CRASH: Loaded libraries: linux-vdso.so.1 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/x86_64-linux-gnu/libavahi-common.so.3 /usr/lib/x86_64-linux-gnu/libavahi-client.so.3 /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 /lib/x86_64-linux-gnu/librt.so.1 /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libpthread.so.0 /lib/x86_64-linux-gnu/libm.so.6 /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libdbus-1.so.3 /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 /usr/lib/x86_64-linux-gnu/libidn2.so.0 /usr/lib/x86_64-linux-gnu/librtmp.so.1 /usr/lib/x86_64-linux-gnu/libssh2.so.1 /usr/lib/x86_64-linux-gnu/libpsl.so.5 /usr/lib/x86_64-linux-gnu/libnettle.so.6 /usr/lib/x86_64-linux-gnu/libgnutls.so.30 /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 /usr/lib/x86_64-linux-gnu/libkrb5.so.3 /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 /lib/x86_64-linux-gnu/libcom_err.so.2 /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 /lib64/l
Oct  2 04:00:03 server tvheadend[27605]: CRASH: Register dump [23]: 0000000000000000 00007ffc037b6cc0 0000000000000008 0000000000000246 0000000000000096 0000000000471af0 00000000025e39a0 0000000000000092 0000000000000002 00007ffc037b6cc0 0000000000471997 0000000000000006 0000000000000000 0000000000000000 00007f7435beafff 00007ffc037b6d38 00007f7435beafff 0000000000000246 002b000000000033 0000000000000000 0000000000000000 fffffffe7ffbfa17 0000000000000000
Oct  2 04:00:03 server tvheadend[27605]: CRASH: STACKTRACE
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x42a4f6
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x7f743626c0e0
Oct  2 04:00:03 server tvheadend[27605]: CRASH: gsignal+0xcf  (/lib/x86_64-linux-gnu/libc.so.6)
Oct  2 04:00:03 server tvheadend[27605]: CRASH: abort+0x16a  (/lib/x86_64-linux-gnu/libc.so.6)
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x7f7435be3e67
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x7f7435be3f12
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x414bc9
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x41764f
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x405d05
Oct  2 04:00:03 server tvheadend[27605]: CRASH: __libc_start_main+0xf1  (/lib/x86_64-linux-gnu/libc.so.6)
Oct  2 04:00:03 server tvheadend[27605]: CRASH: ??:0 0x406139

Вчера я обновлял систему и поэтому первым делом грешил на обновление. Откатил все пакеты на предыдущие версии, но никакого эффекта это не принесло. Потом попробовал удалить всю конфигурацию без которой он может запускаться:

$ rm -fr ~/.hts/tvheadend/channels/ ~/.hts/tvheadend/iptvservices/
$ rm -fr ~/.hts/tvheadend/epggrab/xmltv/channels/ ~/.hts/tvheadend/epgdb.v2 ~/.hts/tvheadend/imagecache/meta/

Это помогло и процесс запустился. Были мысли на кривой XMLTV, закоментировал заливку программы передач в tvheadend и перезапустил процесс импорта. В ответ процесс упал с такой же ошибкой - значит дело не в XMLTV.

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

$ mkdir ~/.hts/tvheadend/channels/BAK
$ mv ~/.hts/tvheadend/channels/[0-9]* ~/.hts/tvheadend/channels/BAK
$ mv ~/.hts/tvheadend/channels/BAK/{1..10} ~/.hts/tvheadend/channels/
$ tvheadend

На итерации 111..120 процесс свалился, начал убирать последнюю пачку обратно и смотреть когда процесс начнет работать. Дошел до 120 и только тогда ему полегчало, вернул обратно 111..119 - работает. Потом все что оставалось выше 120 - тоже работает. Значит проблема в 120 канале.

Открываю и ничего криминального не вижу

$ cat ~/.hts/tvheadend/channels/120
{
    "channel_number": 120,
    "name": "Ля-минор ТВ"
}

Попробовал убрать "ТВ" из название канала и tvheadend стал запускаться. Зашел в Web UI и случайно увидел что есть два канала с похожими названиями: "Ля-минор ТВ" и "Ля-минор". Второй из них явно редактировал я, а значит есть два разных канала с одинаковым названием. Смотрю какие именно:

$ grep -i ля-минор .hts/tvheadend/channels/*
.hts/tvheadend/channels/118: "name": "Ля-минор ТВ"
.hts/tvheadend/channels/120: "name": "Ля-минор ТВ"

118-й и 120-й каналы имеют одинаковое название, нужно проверить какой сетевой адрес указан для них в плейлисте:

$ grep -A1 Ля-минор TVPACKET3.m3u 
#EXTINF:-1, Ля-минор ТВ
udp://@233.81.116.117:1234
--
#EXTINF:-1, Ля-минор ТВ
udp://@233.81.116.117:1234

А вот и источник лажи - в плейлисте дважды указан один и тот же канал. Посмотрю насколько оперативно сработает саппорт A1...

2 комментария:

  1. Доброго времени суток!

    Можете пожалуйста поделиться m3u плейлистом для IPTV от А1?

    ОтветитьУдалить
    Ответы
    1. Уже не пользуюсь IPTV от A1 и не в курсе актуальных ссылок. Попробуйте поискать на https://help.a1.by/resources/iptv/

      Удалить