[gelöst] tvscraper 0.0.1 Absturz bei scrappen des Videoverzeichnis

  • [EDIT] Eine teilweise Lösung bis zu nächsten Git-Versionen: Zeile 157 in der Datei worker.c löschen und neu übersetzen! Sollte Das Problem weiterhin bestehen wegen vorhandener Sonderzeichen in den Titeln: Es sollte in der nächsten Version gefixt sein (Stand 23/08/2013 11:55)


    Ich habe beim scrap(p)en des Videoverzeichnis immer einen Komplettabsturz der VDR und somit werden auch keine Ergebnisse (Bilder) gespeichert...


    Im WFE sehe ich zuletzt:


    Zitat


    Aug 21 16:20:11 VDR vdr: [12035] tvscrapper: "Alles was zählt" successfully scrapped, id 189521
    Aug 21 16:20:11 VDR kernel: [39684.146010] init: vdr main process (11921) killed by ABRT signal
    Aug 21 16:20:11 VDR kernel: [39684.149873] init: vdr-frontend main process (12061) killed by TERM signal
    Aug 21 16:20:12 VDR vdr-crash: vdr exit with signal ABRT . Restarting
    Aug 21 16:20:12 VDR kernel: [39684.231471] init: vdr-exit-other main process (12271) terminated with status 1


    Kann man anhand dessen sagen worans liegt?
    [EDIT] Passiert immer an der gleichen Stelle (id 189521) Nur wie finde ich heraus wo/worans liegt?



    Vielleicht ist das Plugin auch so schlau das es erkennt was für eine beschissene Serie das ist (scherz) ;D

    5 Mal editiert, zuletzt von Taipan ()

  • Kann man anhand dessen sagen worans liegt?


    Schlechter Geschmack bei den Suchtimern? :versteck
    Die Pakete für vdr-plugin-tvscrapper, die bald im testing-PPA bereit stehen sollten bringen mit dem Paket vdr-plugin-tvscrapper-dbg Debug-Symbole mit - damit solltest du wie bei allen anderen VDR-Crashes auch mit den gewohnten Methoden auf die Suche gehen können.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zitat

    Schlechter Geschmack bei den Suchtimern?


    Da bin ich machtlos! Ist der Nachteil einer Ehe :wand

  • Hi,


    jo...nen Backtrace wäre sehr hilfreich...das Paket mit den Debug Symbolen ist ja schon gebaut :)


    Mit "Alles was zählt" direkt hat das wohl nichts zu tun...das wird ja erfolgreich gescrapt. Was würde denn danach kommen? Da scheint mir eher das Problem zu liegen...aber das ist nur Raterei, ich warte mal lieber auf den Backtrace.


    Ciao Louis

  • Ich habe mal den Crash angehängt!

    Dateien

  • ..keiner nen Tip für mich? -schnief-

  • Hmm, die Zeile selbst sieht ziemlich harmlos aus:

    Code
    string recTitle = recInfo->Title();


    Allerdings gibt recInfo->Title() keinen string zurück, sondern ein const char * und beim cast geht was schief.
    Keine Ahnung warum. Noch mehr irritierend ist aber, dass recTitle anscheinend gar nicht gebraucht wird.
    Kommentiere doch die Zeile 157 in worker.c einfach mal aus.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Ich hatte eben die Partition mit den Aufnahmen ausgehängt und anderweitig gemountet. Danach eine 'saubere'' neue Aufnahme ins jungfräuliche Video-Verzeichnis kopiert und den Scraper angeworfen - funktionierte.
    Es muß also eine/mehrere Aufnahmen dafür verantwortlich sein...


    gda
    Danke
    Habe die Zeile eliminiert - damit läuft es durch (jetzt wieder mit allen Aufnahmen) und liefert auch Daten/Bilder...

  • Habe die Zeile eliminiert - damit läuft es durch (jetzt wieder mit allen Aufnahmen) und liefert auch Daten/Bilder...


    Na dann kannst du ja jetzt einen Bugreport machen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Moin,


    Gerald hat Recht...die Zeile ist wirklich überflüssig. Wenn dadurch der Crash behoben ist, ist es ja gut, anscheinend wird hier in speziellen Fällen (wie bei Taipan) auf eine Nullreferenz zugegriffen, das mag wohl std::string als Initialisierung nicht. Ich werde das in der nächsten version rausschmeissen.


    Ciao Louis

  • Ja super, dann ist das ja erledigt :D

  • anscheinend wird hier in speziellen Fällen (wie bei Taipan) auf eine Nullreferenz zugegriffen, das mag wohl std::string als Initialisierung nicht.


    Meine Vermutung geht eher in Richtung UTF8-Probleme. Solange du mit einen UTF8-String in einem Char-Array nichts machst, sondern höchstens herumkopierst, dann geht alles gut. Aber wenn der String plötzlich interpretiert wird beim Cast, dann geht das wohl in die Hose.
    Ist jetzt aber nur ein wild guess.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Man, fast 50 Threads durchsuchen nur um dann festzustellen, dass das der Fehler ist den ich gestern schon gefixt hatte. Das ist nicht dein Ernst oder? Ansonsten poste doch mal deine Zeile 157 aus worker.c.


    Und das ist übrigens der Grund warum ich denke der Scraper für recordings gehört in ein eigenes exe, dann reißt er den VDR nicht runter.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470


  • hier bei mir ist eindeutig das ' im Namen schuld.
    nach ändern der jeweiligen info Datei läufts


    PS. in worker.c habe ich die Zeile 157 auskommentiert und Plugin neu compiliert

  • PS. in worker.c habe ich die Zeile 157 auskommentiert und Plugin neu compiliert


    Dann fehlt aber jetzt die Info welche Zeile er statt der Zeile 157 anmeckert.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470


  • hier bei mir ist eindeutig das ' im Namen schuld.
    nach ändern der jeweiligen info Datei läufts


    PS. in worker.c habe ich die Zeile 157 auskommentiert und Plugin neu compiliert


    Da muss wohl das Apostroph im Statement noch escaped werden. Gibts bestimmt ne Funktion für - eventuell passiert das auch bei anderen Zeichen.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Da muss wohl das Apostroph im Statement noch escaped werden. Gibts bestimmt ne Funktion für - eventuell passiert das auch bei anderen Zeichen.


    Das hängt doch von der Zeile ab in der das passiert. Das ist doch kein Shellscript. Da ist eher die Frage ob da iconv() oder ähnliches benutzt werden muss.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Naja, auch in C muss sowas doch escaped werden. Bin kein Experte. In php gibts da beispielsweise mysql_real_escape_string für sql abfragen. Und ja ich weiss, es ist sqlite. Sieht man doch auch schön im Logsauzug.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Naja, auch in C muss sowas doch escaped werden.


    Nein, doch nicht bei einer Zuweisung zweier Variablen. Außerdem würde Louis den ganzen Problemen aus dem Weg gehen, wenn er die char * einfach char * lassen würde anstatt sie zum string zu machen. Die Fehler kommen eindeutig von der Umwandlung in den string. Und schneller wäre es auch noch, ist aber nicht so wichtig.


    Wenn es unbedingt eine String-Klasse sein muss, dann vielleicht die cString-Klasse von Klaus aus tools.h? Vielleicht kommt die ja besser damit klar.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Na wenn Du meinst. Sowas geht jedenfalls nicht:


    Code
    select series_id from series where series_name='Album '90 - Bilder eines Jahres'

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

Jetzt mitmachen!

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