svdrp - broken pipe

  • Hi zusammen,


    dieser Thread soll anderen helfen und mir als spätere Gedankenstütze dienen ;)
    Mein VDR hatte regelmäßig Probleme in der SVDRP Kommunikation.


    Speziell bei VDR Admin und EPG2VDR / EPGSEARCH habe ich desöfteren im Logfile folgende Fehlermeldung erhalten:

    Code
    Jun  9 10:08:54 VDR vdr: [17041] ERROR (svdrp.c,434): Datenübergabe unterbrochen (broken pipe)


    Das SVDRP Timeout in der setup.conf ist auf 300 Sekunden sprich 5 Minuten eingestellt, was ich als Ursache ausgeschlossen habe.


    Code
    SVDRPTimeout = 300


    Bislang hatte ich jedoch nicht bedacht, dass manche Plugins anstelle einer internen SVDRP Schnittstelle die gewöhnlichen Helpertools wie /usr/bin/svdrpsend verwenden.
    Beispielsweise ist mir beim Zusammenspiel epg2vdr/epgsearch folgendes im ps ax aufgefallen:


    Code
    18268 ?        SN     0:00 /usr/bin/perl /usr/bin/svdrpsend -p 6419 NEWT 1:18:2015-06-12:0605:0640:50:99:Peppa~Die Hühner von Oma Wutz / Der Talent-Tag:<epgsearch><cha


    Ursache für mein Problem ist/war, dass das Timeout des svdrpsend-Scripts statisch auf 10 Sekunden definiert ist:


    Code
    $Timeout = 10; # max. seconds to wait for response


    Diesen Wert habe ich jetzt auf 300 Sekunden (analog zur Serverseite in der setup.conf) eingestellt und habe keine broken-pipe Fehler mehr im Log.
    Dadurch sind auch alle Seiteneffekte von fehlenden Timern usw. verschwunden.


    @yaVDR Entwickler: Könnt ihr das Timeout im Build standardmäßig gleichsetzen? Oder gibt es ein Grund, weshalb es niedriger ist?


    Viele Grüße

  • @yaVDR Entwickler: Könnt ihr das Timeout im Build standardmäßig gleichsetzen? Oder gibt es ein Grund, weshalb es niedriger ist?

    Wir könnten schon, aber das ist die Upstream-Vorgabe: http://projects.vdr-developer.org/git/vdr.git/tree/svdrpsend
    Das Problem löst sich ja hoffentlich mit der nächsten Developer-Version von ganz alleine, wenn der VDR mehrere SVDRP-Clients gleichzeitig akzeptiert.


    Zu epgsearch: anscheinend gab es da früher mal Probleme, wenn man epgsearch mit Bord-Mitteln über SVDRP auf den VDR zugreifen lässt, daher wurde das in der /etc/vdr/plugins/plugin.epgsearch.conf auf svdrpsend umgestellt: https://github.com/yavdr/yavdr…in.epgsearch.conf/10_main
    Ich weiß nicht, ob das wirklich noch notwendig ist, unter Arch Linux läuft mein VDR auch prima mit dem epgsearch-eigenen SVDRP-Client, allerdings nutze ich keine Dienste, die wie vdradmin-am gerne mal die SVDRP-Schnittstelle des VDR längere Zeit blockieren.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!