epgd / epg2vdr / scraper2vdr

  • - der sleep greift damit nur beim Start oder nach einen Verbindungsstörung wenn er sich einmal neu verbinden muss.

    - epg2vdr lockt die Listen immer nur für eine Transaktion, also z.B. beim einlesen des EPGs von der DB kanalweise und gibt sie dazw. wieder frei. dass sollte kaum länger als 1 Sekunde sein


    - beim Scraper muss ich mir das mal ansehen den kenne ich noch nicht so gut

  • Also bis jetzt läuft es erst einmal. Eventuell spinnt eines der deaktivierten Plugins rum und verursacht den Fehler. Werde das testen und mich melden, falls es wieder klemmt. Thx :tup

  • Die Meldung besagt das der VDR welcher den Timer ausführen soll die angefragte Event ID auf dem Kanal nicht findet. Der EPGD hat sie jedoch angelegt da sie in der DB vorhanden ist/war.

    Das ist schon mal eine sehr Wertvolle Information, das hat sich mir aus der Fehlermeldung so nicht erschlossen.


    Zitat

    - grundsätzlich hat dieser Kanal an dem entspr. VDR ein EPG?

    - er bezieht das EPG auch für diesen Kanal vom epgd?

    Auch sehr gute Punkte. Der VDR läuft Headless und ich habe mir da nicht so die Gedanken drüber gemacht. Die Einträge sind auf dem entsprechenden Kanal doppelt vorhanden. Einmal mit "Quelle: TVSP", einmal ohne Angabe. Ich denke da ist irgendwas schief gelaufen. Ich habe das EPG jetzt komplett neu einlesen lassen, es hat sich aber nur heute etwas geändert, nicht in den folgenden Tagen. Wenn ich später Zeit habe, werde ich den VDR stoppen, die epg.data löschen und dann neu starten.

    Insgesamt ist das auch sehr merkwürdig, habe gerade in den Logs gefunden:

    Code
    May 17 17:12:25 NAS vdr: [32047] timer 25 (1 1847-1955 VPS 'Serien~In aller Freundschaft - Die jungen Ärzte~Staffel 04~S04E15 - Drum prüfe sich…') set to event Do. 17.05.2018 19:50-19:55 'Wetter vor acht'
    May 17 17:12:25 NAS vdr: [32047] timer 26 (1 1847-1955 VPS 'Serien~In aller Freundschaft - Die jungen Ärzte~Staffel 04~S04E16 - Späte Einsicht') set to event Do. 24.05.2018 19:52-19:55 'WM-Fieber'

    Der hat die Events auf ne Stunde später geschoben? o_O


    [edit]

    Also der lädt das EPG genau so wieder aus der DB.


    Ich habe jetzt mittels epgd-dropall die DB gelöscht und befülle sie jetzt nochmal neu. Das sollte den schmodder dann ja loswerden...

  • Zu früh gefreut. Nach 4 Stunden knallt es wieder. Zum Zeitpunkt der ersten Fehlermeldung lief einfach nur das TV-Programm. Es wurde weder "fernbedient" noch aufgenommen. Die IP 192.168.130.1 gehört dem externen epgd-Server.


    Im Log springt der Watchdog an (streamdev?) und danach hagelt es Fehlermeldungen. Ich teste es nochmal ohne Streamdev...

    Dateien

  • Hmm... es wird nicht besser. Bin mir sicher, dass ich die Tabelle irgendwann mal "gealtert" habe, weshalb ich den SQL-Fehler auch nicht nachvollziehen kann. Wenn ich in die mysql DB schaue ist die Tabelle "vdrs" vorhanden.

  • Nach einem Reboot kommt dann das:

  • Ich habe jetzt mittels epgd-dropall die DB gelöscht und befülle sie jetzt nochmal neu. Das sollte den schmodder dann ja loswerden...

    Hat auch nicht geholfen :(

    Habe aber ein weiteres Problem gefunden. Ich glaube ich hatte das schonmal und irgendwie gelöst, kann mich nur nicht mehr erinnern ||

    Code
    May 18 13:23:40 NAS epgd: Calling 'mergeepg'
    May 18 13:23:40 NAS epgd: SQL-Error in 'execute(stmt_execute)' - PROCEDURE epg2vdr.mergeepg does not exist (1305) 'PROCEDURE epg2vdr.mergeepg does not exist' [call mergeepg]

    In der Datenbank kann ich bestätigen, dass die Procedures und Functions nicht existieren. Wenn ich die SQL files aus dem /config Verzeichnis einspielen will, gibt es Fehler. Wenn ich die von Hand anlege beschwert sich der EPGD beim Start, dass die Funktionen schon existieren. Wenn ich sie wieder lösche, werden sie beim start nicht angelegt.


    Ich setze MariaDB ein, kann das ein Problem sein?


    [edit]

    Wie immer, kaum schickt man den Beitrag ab, fällts einem ein. Die Procedures kann ich importieren mit --delimiter="//"

    Code
    mysql -u epg2vdr -pepg --delimiter="//" epg2vdr < /etc/epgd/mergeepg.sql


    Ich habe jetzt die Funktionen gelöscht, den EPGD gestartet und während er das EPG herunterlädt, mit obigem Befehl die Funktionen erstellt. Dann kommt erfolgreich:

    Code
    May 18 13:40:33 NAS epgd: Calling 'mergeepg'
    May 18 13:41:06 NAS epgd: 'mergeepg' suceeded

    Für den Moment sieht es gut aus, aber er arbeitet ja noch ;)

    Aber wenn ich das richtig sehe, müsste ich das bei jedem Neustart machen.

  • In der Datenbank kann ich bestätigen, dass die Procedures und Functions nicht existieren. Wenn ich die SQL files aus dem /config Verzeichnis einspielen will, gibt es Fehler. Wenn ich die von Hand anlege beschwert sich der EPGD beim Start, dass die Funktionen schon existieren. Wenn ich sie wieder lösche, werden sie beim start nicht angelegt.


    Ich setze MariaDB ein, kann das ein Problem sein?

    MariaDB verwende ich auch, läuft hier ohne Probleme.

    Die Procedure wird bei Start automatisch angelegt oder, bei Änderung aktualisiert. Wenn das nicht klappt sollte es da schon eine Fehlermeldung geben. Von Hand anlegen musste ich sie noch nie. Wie sieht denn die Meldung beim epgd Start aus?

  • Nach einem Reboot kommt dann das:

    kann es sein dass die Tabelle von Hand gesperrt ist, also irgendwo an einem SQL Prompt ein offenes Statement?

    Hmm... es wird nicht besser. Bin mir sicher, dass ich die Tabelle irgendwann mal "gealtert" habe, weshalb ich den SQL-Fehler auch nicht nachvollziehen kann. Wenn ich in die mysql DB schaue ist die Tabelle "vdrs" vorhanden.

    die Fehlermeldungen "Missing definition of field '��.PATH' in dictionary" liegen nicht an der Datenbank oder Tabelle, da geht im Code des Plugins etwas schief. leider kann ich mir nur nicht erklären was. Sieht nach einem Speicherfehler aus, also das im Plugin Code irgendwo im Speicher durch einen Bug etwas überschreiben wird. Meine Hoffnung war das valgrind da ggf. den Richtigen Hinweis bringen könnte - dazu müsste es jedoch mal auftreten wenn der VDR mit unter valgrind läuft

  • MariaDB verwende ich auch, läuft hier ohne Probleme.

    Die Procedure wird bei Start automatisch angelegt oder, bei Änderung aktualisiert. Wenn das nicht klappt sollte es da schon eine Fehlermeldung geben. Von Hand anlegen musste ich sie noch nie. Wie sieht denn die Meldung beim epgd Start aus?

    Da kommt keine Fehlermeldung. Ganz normal ein "Calling mysql_init(3504)" dann lädt er das EPG und danach:

    Code
    epgd: Calling 'mergeepg'
    epgd: SQL-Error in 'execute(stmt_execute)' - PROCEDURE epg2vdr.mergeepg does not exist (1305) 'PROCEDURE epg2vdr.mergeepg does not exist' [call mergeepg]

    dann geht er ganz normal weiter.


    Ein restart sah so aus:

  • und die Procedure ist schon beim Start nicht da, also das hier liefert kein Ergebnis?

    Code
    show procedure status where name = 'mergeepg';
  • Bei dem epgd-showmerge ist mir aufgefallen, daß NUR tvsp da ist, kein vdr zum "mergen" oder um Sendungskennungen zu erhalten?

    Steht vielleicht in der /var/lib/vdr/setup.conf sowas wie epg2vdr.Blacklist = 1

    drin?

  • Au au, blacklist =1 ist sicher kein Grund dafür das keine vdr Events auf der dB sind.


    Aber ein Problem ist das schon, guter Ansatz


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • und die Procedure ist schon beim Start nicht da, also das hier liefert kein Ergebnis?

    Code
    show procedure status where name = 'mergeepg';

    Naja, das liefert ein (1) Ergebnis in der Backup-DB. Ich habe die Datenbank mal im Betrieb kopiert, bevor ich angefangen habe zu "spielen". In der eigentlichen "Arbeits-DB". Ich habe die procedures jetzt mal aus dem Backup gelöscht. War das das Problem?

  • Naja, das liefert ein (1) Ergebnis in der Backup-DB. Ich habe die Datenbank mal im Betrieb kopiert, bevor ich angefangen habe zu "spielen". In der eigentlichen "Arbeits-DB". Ich habe die procedures jetzt mal aus dem Backup gelöscht. War das das Problem?

    Ja, wenn er es in der DB findet geht er davon aus das sie da ist. Ich muss die Suche mal bei Gelegenheit auf die epg2vdr DB einschränken.

  • Verstanden. Nach dem Bereinigen läuft momentan alles. Danke!

    (außer, dass epgd-showmerge auch nur Events vom TVSP zeigt. Dachte, das wäre normal..)


  • nein mit einem Standard Setup ist das nicht normal, er sollte das EPG welches über den VDR (epg2vdr Plugin) von den Sendern in die DB kommt mit dem des externen Providers mergen.


    hast du einem der VDRs erlaubt die Events in die DB zu schreiben?


    BTW:

    Diese Zeile scheint bei dir einen Fehler zu generieren:

    Code
    if [ "$1" == "-h" ]; then

    sollte aber keine Auswirkung aus die Ausgabe des Skripts haben.

  • nein mit einem Standard Setup ist das nicht normal, er sollte das EPG welches über den VDR (epg2vdr Plugin) von den Sendern in die DB kommt mit dem des externen Providers mergen.


    hast du einem der VDRs erlaubt die Events in die DB zu schreiben?

    Ich habe mich damit ehrlicherweise noch nicht beschäftigt. Mir war garnicht bewusst, dass epg2vdr Einstellungen auch Auswirkungen auf das vdr->epgd Verhalten haben. Habe mich gerade durch die Readme gelesen. Sollte mich wohl noch damit beschäftigen ;) Ich vermute es liegt an der Master Einstellung, die bei mir auf 0 steht. Werde das mal testen.

    (Vielleicht wäre eine kurze Notiz in der epgd Readme nützlich, dass man auch die epg2vdr Einstellungen beachten muss.)


    Zitat

    BTW:


    Diese Zeile scheint bei dir einen Fehler zu generieren:


    Code
    if [ "$1" == "-h" ]; then

    sollte aber keine Auswirkung aus die Ausgabe des Skripts haben.

    In der Tat. Das liegt an der zsh, mit bash gehts

  • Ich habe mich damit ehrlicherweise noch nicht beschäftigt. Mir war garnicht bewusst, dass epg2vdr Einstellungen auch Auswirkungen auf das vdr->epgd Verhalten haben. Habe mich gerade durch die Readme gelesen. Sollte mich wohl noch damit beschäftigen Ich vermute es liegt an der Master Einstellung, die bei mir auf 0 steht. Werde das mal testen.

    (Vielleicht wäre eine kurze Notiz in der epgd Readme nützlich, dass man auch die epg2vdr Einstellungen beachten muss.)

    na ja mit den default Einstellungen läuft es, und vor dem umstellen ist etwas lesen angeraten ;)

  • na ja mit den default Einstellungen läuft es, und vor dem umstellen ist etwas lesen angeraten ;)

    Das stimmt ;)

    Die default Einstellungen hatte ich aber. Hab das jetzt von "auto" auf "on" gestellt. Momentan ist nur ein Client verbunden, der Headless auf dem gleichen Rechner läuft. Trotzdem bisher kein merge Event. Ich starte beides heute Abend mal neu und lass ihn dann mal einen Tag laufen.

Jetzt mitmachen!

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