tvmovie2vdr saugt rechner den speicher weg

  • Hi @ all ...


    Habe ein Problem mit tvmovie2vdr:
    Ich rufe das tvm2vdr.pl script wie beim installieren angefragt, über cron.d um 12 und um 24 Uhr automatisch auf.
    Soweit so gut ... das klappt so lange, wie der Rechner online ist. Ist er es nicht, so legt mir tvm2vdr den kompletten Rechner lahm, weil es den Hauptspeicher frißt (für sich vereinnahmt). Der Rechner wird laaaaaaannngsam und es dauert bestimmt ne halbe Stunde bis ich mittels ssh drauf komme, um tvm2vdr.pl zu killen ...


    Normal ist das nicht, oder?
    Eigentlich läuft Inet bei mir 24/7 ... allerdings ist das mein VDR-Server, welcher, so wie geschehen, eigentlich im Urlaubsfall meine Aufnahmen erledigt ... gleichzeitig hatte aber auch mein Router nen Problem => Folge: keine Aufnahmen ;(


    Ggf. sollte da ne Abfrage ins tvm2vdr-script ... !?


    Falls Infos gebraucht werden, so reiche ich die nach bedarf nach!


    LG
    Roman

    Wohnzimmer (Client 1): C't Vdr (Sarge), 2.6.15-sl, 1.4.0-2, TT-1.5 FF, Hermes 651, 40 GB, 2Ghz Celeron, 512MB, PSOne TFT
    Server: C't VDR (Sid), 2.6.15-1-k7, 1.4.1-1, TT-1.6 FF, XP-2000+, 500GB, 512MB
    Schlafzimmer (Client 2): MediaMVP
    MediaMVP, Bose S 100, 400er Oldischlepptopp für den Garten

    Einmal editiert, zuletzt von Uatschitchun ()

  • Das Verhalten kann ich bestätigen, auch bei mir (c't-vdr-3) führte ein tvm2vdr Lauf ohne Netzverbindung schon zum Absturz des vdr - offenbar wegen "Speichermangel", so ca. 1/2 Stunde nach Start des Scripts.
    Nach kill -9 tvm2vdr ließ sich der vdr dann wieder neu starten.
    Die Idee, die Erreichbarkeit des Servers zu prüfen bevor er in diese fatale Situation gerät hatte ich auch, bisher aber noch nicht nachgesehen wie und wo sich das am besten realisieren ließe.


    Gruß
    skatetux

  • Sollte man aber dringend drüber nachdenken (Online-Status), v.a. da bei der Installation des addons nach nem Eintrag in Cron gefragt wird ...


    Ggf kann man das über nen ping auf google machen !?


    tvm2vdr start
    ping www.google.de
    wenn response bzw. wenn kein timeout
    script fortsetzen
    sonst abbruch mit logeintrag


    Wobei allerdings immer noch das Problem besteht, daß die Verbindung ja auch während der Ausführung unterbrochen werden kann ... von daher sollte doch eher die Frage sein, was überhaupt dazu führt, sich den ganzen Speicher (übrigens inkl. Swap) reinzunuckeln ... !?


    Klar, killall -9 klappt, aber dazu muß man erstmal kommen ;(


    LG
    Roman

    Wohnzimmer (Client 1): C't Vdr (Sarge), 2.6.15-sl, 1.4.0-2, TT-1.5 FF, Hermes 651, 40 GB, 2Ghz Celeron, 512MB, PSOne TFT
    Server: C't VDR (Sid), 2.6.15-1-k7, 1.4.1-1, TT-1.6 FF, XP-2000+, 500GB, 512MB
    Schlafzimmer (Client 2): MediaMVP
    MediaMVP, Bose S 100, 400er Oldischlepptopp für den Garten

    Einmal editiert, zuletzt von Uatschitchun ()

  • hm, da ich im tvm2vdr-script ausschließlich perlmodule verwende (insbesonder LWP::Simple), schließe ich mal aus, dass ich da einen Fehler gemacht habe (das ist kaum möglich). Hier sollte der Systemtimeout greifen. Könnt ihr etwas mehr Details liefern?


    Wenn der Rechner offline ist, hat der trotzdem eine IP und defaultgateway? ist das defaultgateway erreichbar und geht es dann odrt nicht weiter oder kommt man schon nicht zum defaultgateway? Welche Linuxdistribution, welche Perlversion?


    das bekommt man schon in den Griff ...

    VDR(Via Epia M-10000, 512MB, 2xNexus-s, 120GB&160GB&160GB Samsung SpinPoint, NEC 1300 DVD+-R/RW, IR-Kit, VFD Noritake)
    Gehäuse: Eigenbau (s.o.)

    Einmal editiert, zuletzt von sn123py ()

  • Für mein Beispiel kann ich mal versuchen Detaills/Versionen zu liefern:


    Distri: aktuelle c't-vdr 3, sarge, vdr 1.2.6. Alles weitere dazu sollte der angehängten vdrinfo.log zu entnehmen sein.


    Der VDR hat eine IP und das default Gateway ist bei mir auch zu erreichen wenn die I-Net Verbindung nicht steht.


    Perl:
    peter@ginny:~$ perl -version


    This is perl, v5.8.4 built for i386-linux-thread-multi



    Das ist soweit ersmal alles was mir einfällt, weitere Fragen immer wilkommen ;)


    viel Glück
    skatetux


    PS:
    alles sind die aktuellen Binärpakete aus der distri, nicht selbst übersetzt

  • hm .. kannst du mir einen Gefallen tun und in der config.pl mal den hostnamen von tvmovie ändern (in blahq123 oder so), dass der Rechnername nicht existiert und dann tvmovie nochmal mit bestehender Verbindung starten? Was passiert?

    VDR(Via Epia M-10000, 512MB, 2xNexus-s, 120GB&160GB&160GB Samsung SpinPoint, NEC 1300 DVD+-R/RW, IR-Kit, VFD Noritake)
    Gehäuse: Eigenbau (s.o.)

  • habe jetzt mal die folgenden beiden Einträge wie folgt geändert:


    # settings for TVMovie
    our $baseurl = "http://bla-blub-blub.bloe.info/onlinedata/xml-gz/";
    our $aendurl = "http://bla-blub-blub.bloe.info/onlinedata/xml-aend-gz/";


    Ich hoffe es ist das was Du meinst. Wenn das Verhalten damit genauso ist wie letztens wird es allerdings ein weilchen dauern, bis es zum Problem kommt.


    skatetux


    PS:
    Mem: 515260k total, 150412k used, 364848k free, 23192k buffers
    Swap: 498004k total, 1792k used, 496212k free, 29504k cached


    So sieht übrigens die Speicherauslastung vor dem Start von tvm2vdr aus.



    1. Versuch: -Das Problem ließ sich erstmal nicht wiederholen, tvm2vdr.pl hat sich scheinbar korrekt beendet, ohne den vdr mitzureißen - Fehler im syslog konnte ich erstmal nicht ausmachen - zumindest nichts was ich mit dem EPG-Update in verbindung bringen würde.



    2. Versuch nach Neustart des vdr - wurde auch problemlos, und ungewöhnlich schnell beendet. Möglicherweise taucht das problem nicht auf, wenn eine klaare rückmeldung kommt:


    ginny:/home/peter# ping bla-blub-blub.bloe.info
    ping: unknown host bla-blub-blub.bloe.info



    3. Versuch: die korrekten Hostnamen wieder hergestellt:


    our $baseurl = "http://tvmovie.kunde.serverflex.info/onlinedata/xml-gz/";
    our $aendurl = "http://tvmovie.kunde.serverflex.info/onlinedata/xml-aend-gz/";


    Und die Verbindung ins I-Net getrennt. Ich will jetzt wissen ob es überhaubt reproduzierbar ist.


    Das scheint zu funktionieren - tvm2vdr.pl zieht über 90% CPU-Last und die Speicherauslastung steigt.


    Ein ping auf die korrekte Adresse liefert währenddessen übrigens ein auswertbares Ergebniss:


    ginny:/home/peter# ping tvmovie.kunde.serverflex.info
    ping: unknown host tvmovie.kunde.serverflex.info


    So - ich denke das reicht, die Speicher/Swap-Auslastung steigt immer weiter, es würde aber wohl noch gut eine halbe Stunde dauern bis es zum Crash kommt:


    top - 00:49:59 up 6:01, 1 user, load average: 1.10, 1.11, 0.85
    Tasks: 89 total, 5 running, 84 sleeping, 0 stopped, 0 zombie
    Cpu(s): 95.0% user, 5.0% system, 0.0% nice, 0.0% idle
    Mem: 515260k total, 510180k used, 5080k free, 8288k buffers
    Swap: 498004k total, 67344k used, 430660k free, 36588k cached


    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    7421 root 15 0 431m 408m 4728 R 94.4 81.1 20:14.35 tvm2vdr.pl
    3052 root 9 0 16308 13m 5548 R 2.3 2.6 1:03.56 vdr
    3060 root 9 0 16308 13m 5548 S 2.0 2.6 0:26.50 vdr
    12185 root 11 0 1068 1008 844 R 0.7 0.2 0:02.18 top
    4 root 9 0 0 0 0 S 0.3 0.0 0:00.69 kswapd
    3059 root 9 0 16308 13m 5548 R 0.3 2.6 0:09.85 vdr
    1 root 8 0 508 476 452 S 0.0 0.1 0:04.14 init


    An der Stelle breche ich ab, im syslog nichts auffälliges, außer vielleicht:


    Jan 13 00:54:13 ginny vdr[3059]: BOUNCE BUFFER: Bufferoverlow
    Jan 13 00:54:44 ginny last message repeated 134 times
    Jan 13 00:55:05 ginny last message repeated 96 times


    wobei diese Meldung auch häufig kommt ohne das tvm2vdr.pl läuft und den Betrieb scheinbar nicht beeinflusst.


    Gruß
    skatetux


    PPS: sorry das der top-Auszug so unleserlich ist, sieht im edit-fenster ganz anders aus. Mir fällt im Moment aber nichts beseres ein.


    PPPS:
    Habe noch den Verantwortlichen für die BOUNCE ... Meldung ausgemacht, glaub ich jedenfalls ;)
    Scheint das bitstreamaout Plugin zu sein - war Tip von gonz - Plugin deaktiviert - Meldung weg.

  • OK, mir ist gestern Nacht ebenfalls der VDR gestorben, weil tvmovie2vdr den Speicher vollgemacht hat. Ich hab daraufhin gerade eben das Script von Hand gestartet - ist wieder hängengeblieben. Wie von skatetux beschrieben ist dann die CPU (fast) am Anschlag, und die Speicherausnutzung des Prozesses steigt langsam an.
    Ich verwende Hörzu als Quelle und habe verifiziert daß deren Seite vom VDR-Rechner auch während des hängenden tvm2vdr erreichbar ist.


    Ich habe daraufhin die Anzahl der zu speichernden Tage von 7 auf 5 reduziert, danach lief es ohne Problem durch. Gegencheck: Wieder auf 7 gesetzt - Peng. Es hängt an genau derselben Stelle!, der letzte angezeigte Eintrag ist beide Male
    hoerzu: getting 11860505 (2005-01-23 01:25 Alphamann: Die Selbstmörderin)


    Irgendwer 'ne Idee was ich noch probieren könnte? Von Perl hab ich leider genau Null Ahnung :(


    Pit

    VDR2: ASRock J4105-ITX, DVBSky S952, openSUSE Tumbleweed, VDR 2.4.7

    softhddevice/vaapidevice, DFAtmo, xmltv2vdr, tvscraper, tvguideng, VDRAdmin-AM (alles git, aber alt)

  • hm.


    meine Linuxrechner sind alle nur per ssh-zugang erreichbar, darum ist das testen ziemlich schwierig.
    kann mal bitte jemand ein strace ./tvmovie2vdr machen und mir den output schicken? Die ausgabew dürfte *ziemlich* lang werden, darum am besten ein


    strace ./tvmovie2vdr > output.txt 2>&1


    machen und mir dann das output.txt gzipped schicken..


    danke!

    VDR(Via Epia M-10000, 512MB, 2xNexus-s, 120GB&160GB&160GB Samsung SpinPoint, NEC 1300 DVD+-R/RW, IR-Kit, VFD Noritake)
    Gehäuse: Eigenbau (s.o.)

  • Hmm, also wie ich Dir 'nen Dateianhang schicken kann hab ich leider nicht rausgefunden :(
    Ich hab aber wie gewünscht 'n strace von tvm2vdr.pl gemacht und mit gzip komprimiert. Durch die Ausgabeumlenkung war nicht wirklich zu sehen was passiert, ich hab also mit 'top' geschaut und als irgendwann die CPU-Last auf >90% ging und da blieb hab ich dann ^C gedrückt.
    Ich hab das ganze hier hinterlegt. Ich hoffe es hilft was...


    Pit

    VDR2: ASRock J4105-ITX, DVBSky S952, openSUSE Tumbleweed, VDR 2.4.7

    softhddevice/vaapidevice, DFAtmo, xmltv2vdr, tvscraper, tvguideng, VDRAdmin-AM (alles git, aber alt)

  • um erstmal einen schnellen Bugfix zu haben, nimm mal bitte die Version 0.3.1 und setze die Variablen wie folgt:


    Code
    $networktries = 1;
    $abortonnetwork = 1;


    Dann mal schaun, ob das hilft.


    Das ist anscheinend kein Perlproblem sondern eher eine Frage der Distribution. Ich habe eine steinalte SuSE, die fast nur noch aus selbstkompilierten Paketen besteht mit einem 2.4er Kernel - der meldet einfach "Host not found" und fertig. keine Systemlast, keine Fehlermeldungen im Log, nix.


    kannst ja mal sagen, wie sich das script dann verhält.


    tschüss,
    macfly.

    VDR(Via Epia M-10000, 512MB, 2xNexus-s, 120GB&160GB&160GB Samsung SpinPoint, NEC 1300 DVD+-R/RW, IR-Kit, VFD Noritake)
    Gehäuse: Eigenbau (s.o.)

Jetzt mitmachen!

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