Fuzzy Tools um VDR stabiler zu machen

  • Hallo!


    wurde schon einmal versucht, mit hilfe von Fuzzy Tools (http://www.heise.de/security/artikel/76512/0) den VDR stabiler gegen falsche eingabedaten zu bekommen?


    ich habe einmal probiert das eingangssignal künstlich zu 'verrauschen', der vdr ist dann nach rund einer halben sekunde gecrasht. leider fehlt mir selbst das wissen wie man unter der linux konsole richtig debuggt und fehlersuche macht, bin da zu stark vom visual studio verwöhnt. (für mich ist der ddd ein albtraum).


    mfg
    nollsen

  • Welche Art Eingabedaten meinst du? fehlerhafte Tastatureingabe, fehlerhafte Videodaten, oder fehlerhafte SVDRP-Kommandos?


    Mit Videodaten testest du vermutlich mehr die DVB-Treiber und die Firmware. Und sonst sehe ich nicht die Notwendigkeit für derartige Tests, da VDR ja normalerweise weder Internet-Daten verarbeitet, noch aus dem Internet direkt erreichbar ist. (bzw. sein sollte.) Und die allgemeine Stabilität von VDR scheint mir 'gefühlt' sehr gut zu sein.


    Aber letztlich darf natürlich jeder, der will, auch fuzzy-tests auf VDR los lassen, und entsprechend gefundene Fehler melden. ;)


    Gruß,


    Udo

  • hallo,


    leider muss ich sagen ist der vdr sehr sehr instabil wenn es sich um falsche eingaben oder bedienungen handelt.


    wie gesagt, falsche eingabedaten von dem dvb device und der vdr hat es keine sekunde ausgehalten.
    per svdrp kann man ihn auch ganz leicht crashen indem man die verbindung nicht ordnungsgemäß trennt oder sich noch in einem kommando befindet.


    die konfigurationsdateien sind praktisch null fehlertolerant, ein kleiner fehler in der channels.conf und schon startet sich der vdr ununterbrochen neu.



    mfg
    nollsen


  • ...und nun ???


    Gruß
    Wicky

  • Zitat

    Originally posted by nollsen
    wie gesagt, falsche eingabedaten von dem dvb device und der vdr hat es keine sekunde ausgehalten.


    VDR reicht die meisten Videodaten nur an die DVB-Hardware durch. Die meisten so gefundenen Fehler sind daher vermutlich in der Firmware zu suchen, nicht in VDR.


    Zitat

    per svdrp kann man ihn auch ganz leicht crashen indem man die verbindung nicht ordnungsgemäß trennt oder sich noch in einem kommando befindet.


    Nicht ordnungsgemäßes Trennen sollte zu einem Timeout führen. Und Trennen während eines Kommandos sollte sauber abbrechen. Konkrete reproduzierbare Bugreports sind da immer willkommen.


    Gegen gezielte unsinnige Eingaben kann es aber keinen vollständigen Schutz geben, ohne erheblich aufwändigere Implementierung.


    Zitat

    die konfigurationsdateien sind praktisch null fehlertolerant, ein kleiner fehler in der channels.conf und schon startet sich der vdr ununterbrochen neu.


    Nein, eigentlich beendet er sich mit einer Fehlermeldung. Ein gutes runvdr-Skript sollte das erkennen und gleich aufgeben. 'Automatische Selbstheilung' ist absichtlich nicht vorgesehen, um Datenverlusten vorzubeugen.


    Gruß,


    Udo

  • Ein brachiales "Verrauschen" von DVB-Eingangsdaten (TS,PES) ist kein Test, sondern die Bestätigung, dass man mit kaputten Daten nicht sonderlich viel anfangen kann.


    a) VDR ist pedantisch, was seine Config-Dateien angeht - manche mögen das, manche hassen das.


    b) Falls du einzelne Probleme sieht und ne Idee hast, die den VDR fehlertoleranter machen: Patch schreiben und an Klaus senden.


    c) VDR restartet sich niemals selbst neu


    arghgra

  • Hallo!


    Zitat

    Ein brachiales "Verrauschen" von DVB-Eingangsdaten (TS,PES) ist kein Test, sondern die Bestätigung, dass man mit kaputten Daten nicht sonderlich viel anfangen kann.


    Mit kaputten Daten kann man nicht viel anfangen, allerdings sollten fehlerhafte Daten auch keinen schaden anrichten. Zudem halte ich nichts von dem vdr notausstieg "vdr prozess killen" und per watchdog neu starten, ein programm sollte selbst mit den fehlern zurechkommen und wieder zurück in einen gültigen zustand springen.


    (wie schon wäre es wenn in word ein dialogfeld abstürzt und word würde zurück zum unveränderten dokument zurückkehren ... )


    zu a), simmt ist geschmackssache
    zu b), würde ich gerne, allerdings habe ich selbst inzwischen die nase voll von linuxprogrammieren und gdb insight oder sonst was debuggen .
    zu c) nö aber das runvdr script das eine ebene untendrunter läuft

  • Das Beenden des VDR in Kombination mit einem Neustart durch eine Runvdr ist bei fehlerhaftem Eingangssignal während einer Aufnahme idR die einzige Chance, die Situation zu verbessern -> Exit -> DVB Treiber Reload -> Start.


    arghgra

  • Zitat

    Originally posted by nollsen
    Zudem halte ich nichts von dem vdr notausstieg "vdr prozess killen" und per watchdog neu starten, ein programm sollte selbst mit den fehlern zurechkommen und wieder zurück in einen gültigen zustand springen.


    Die Überwachung durch Watchdog dient erst mal der Fehlererkennung und ist eine durchaus sinnvolle Sache. Hängt sich der VDR-Prozess in einer Schleife auf, kann er entweder für immer laufen, oder durch den Watchdog gefangen werden. Dann doch lieber Watchdog, als 2 Tage lang alle Aufnahmen verlieren.


    Der Umweg über das Beenden und Neustarten per runvdr dient primär dem neu Laden der Kerneltreiber. Das Entladen und neu Laden bei laufendem VDR ist meist nicht möglich, da der VDR-Prozess die Kerneltreiber blockiert.


    Gruß,


    Udo

  • Zitat

    ein programm sollte selbst mit den fehlern zurechkommen und wieder zurück in einen gültigen zustand springen.


    das ist schon alleine deswegen Unsinn, da der reine Anwender nicht den VDR Prozess separat, sondern
    die gesamte Maschine (mit Startscripten, Treibern, Betriebssystem etc.) sieht. Deswegen kommt es
    darauf an, dass das Gesamtkonzept, das alle Komponenten umfasst, stabil ist. Und dieses Ziel wird
    mit den diversen 'Hooks', die in VDR eingebaut sind (wie emergency exit, timer watchdog etc.) optimal erreicht.


    Der Hauptgrund fuer gelegentliche Probleme mit den DVB Treibern liegt nicht daran, dass die etwa schlecht
    programmiert sind, sondern weil die Hardwarehersteller nur unzureichende Dokumentationen zu
    ihren Produkten rausruecken. Open Source wird von vielen Herstellern eben immer noch boykottiert. Aus dieser
    Sicht ist es schon eher eine beachtliche Leistung, wie stabil die DVB Treiber dennoch laufen.


    sparkie

  • Hallo!


    Also, ich finde die DVB-Treiber bräuchten einen ioctl-Befehl um die Hardware zu resetten, anstatt die Treiber neu laden zu müssen.
    Dann könnte man auf emergency-exit in dem Fall Verzeichten und cDVBDevice könnte das spezifische device in einen definierten Zustand zurückbringen.


    Zzam

Jetzt mitmachen!

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