Gentoo aktualisiert, auf MariaDB umgestiegen (vorher MYSQL5) nun fehlen 3 SQL Funktionen

  • Hallo Leute


    mit eurer Hilfe hab ich es nun tatsächlich geschafft. Nach dem irren Update von Gentoo, wurde nun auch epgd und dazugehörige Plugin sauber gebaut. Am SQL fehlen mir nun laut Log drei essentielle Funktionen:

    • getupdflg
    • getcrosslvr
    • getlvrmin


    Anhaltspunkte wie man die aktiviert und ob es die überhaupt noch gibt finde ich keine. Ich benutze hier die MariaDB Version 10.5.9-r5. Laut dem Beitrag funktioniert es aber zumindest in Suse mit der MariaDB Version 10.5.9-2.2. Datenbank technisch scheint zumindest alles brav erstellt zu sein.


    System: Gentoo VDR auf Proxmox virtualisiert im LXC
    Sundtek SkyTV Ultimate Dual

  • die Dateien aus denen die Funktionen erstellt werden müssen unter /etc/epgd liegen, daraus legt der epgd die Funktionen beim Start an


    Code
    root@PowerEdge:/etc/epgd# ls -l | grep get
    -rw-r--r-- 1 root root  1460 Sep  2  2020 getcrosslvr.sql
    -rw-r--r-- 1 root root  1643 Sep  2  2020 getlvrmin.sql
    -rw-r--r-- 1 root root  1143 Sep  2  2020 getupdflg.sql

    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



  • Ja die Files gibt es und sind auch lesbar.


    Code
    root@vdr /etc/epgd # ls -l | grep get
    -rw-r--r-- 1 root root  1460  7. Jun 20:23 getcrosslvr.sql
    -rw-r--r-- 1 root root  1643  7. Jun 20:23 getlvrmin.sql
    -rw-r--r-- 1 root root  1143  7. Jun 20:23 getupdflg.sql

    System: Gentoo VDR auf Proxmox virtualisiert im LXC
    Sundtek SkyTV Ultimate Dual

    Einmal editiert, zuletzt von looking111 ()

  • Ich hab mich bei der Neuinstallation (musst zwecks Gentoo Update alles entfernen) nach meiner Anleitung gehalten: https://deepdoc.at/dokuwiki/do…ia:epgd_mit_vdr_in_gentoo Die SQL Einstellungen wurden nicht gesetzt, da ich ja auf MariaDB gewechselt hab. Glaub die speziellen Einstellungen in der Hauptkonfiguration sind nicht mehr notwendig.

    Ansonsten hab ich die Datenbank direkt im SQL Server angelegt und auch mit dem epg-tool. Beides gleiches Ergebnis.

    System: Gentoo VDR auf Proxmox virtualisiert im LXC
    Sundtek SkyTV Ultimate Dual

  • bitte mal Jörg fragen warum die Funktionen nicht automatisch angelegt werden in dem Szenario. - ansonsten wenn es nur daran liegt einfach von Hand anlegen mit nem SQL Client

    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



  • So, jetzt hab ich so ziemlich alles mir mögliche versucht um die Funktionen anzulegen. Kann ja nicht so schwer sein.

    Code
    mysql -u root -p -h localhost epg2vdr < getlvrmin.sql
    CREATE FUNCTION getupdflg;
    MariaDB [(none)]> /etc/epgd/getlvrmin.sql
    CREATE FUNCTION /etc/epgd/getlvrmin.sql;

    Hab dann auch noch diese Dinge durchgearbeitet.

    https://www.cyberciti.biz/faq/…to-mysql-database-server/

    https://www.educba.com/mysql-create-function/

    https://www.oreilly.com/librar…l/0596002653/ch09s02.html

    https://techsupportwhale.com/m…000-no-database-selected/


    Komm einfach nicht dahinter wie das funktionieren soll. Versteh da wohl noch etwas nicht ganz so...

    System: Gentoo VDR auf Proxmox virtualisiert im LXC
    Sundtek SkyTV Ultimate Dual

  • Soweit ich das verstehe, legt epg2vdr die Funktionen in der update.c an, wenn sie fehlen.


    Was genau steht in den Logmeldungen von epgd und was sagt die Datenbank dazu?

    Da sollte sowas in der Art zu sehen sein, wenn das Update einmalig gelaufen ist:

    Code
    MariaDB [epg2vdr]> show function status;
    +---------+-------------+----------+-------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    | Db      | Name        | Type     | Definer           | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
    +---------+-------------+----------+-------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    | epg2vdr | getcrosslvr | FUNCTION | epg2vdr@localhost | 2016-11-13 23:10:53 | 2016-11-13 23:10:53 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
    | epg2vdr | getlvrmin   | FUNCTION | epg2vdr@localhost | 2016-07-05 08:44:30 | 2016-07-05 08:44:30 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
    | epg2vdr | getupdflg   | FUNCTION | epg2vdr@localhost | 2016-07-05 08:44:30 | 2016-07-05 08:44:30 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
    +---------+-------------+----------+-------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    3 rows in set (0.008 sec)


    PS: https://forum.ubuntuusers.de/t…ktion-in-mariadb-mysql-h/ hat dann eher nichts mit Ubuntu zu tun, oder?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Dein Befehl hat mich tatsächlich einen Schritt weiter gebracht. Also irgendwo auf meinem Weg (leider kann ich es nicht mehr nachvollziehen), sind wohl die Funktionen angelegt worden.

    Code
    MariaDB [epg2vdr]> show function status;
    +---------+-------------+----------+-----------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    | Db      | Name        | Type     | Definer   | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
    +---------+-------------+----------+-----------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    | epg2vdr | getcrosslvr | FUNCTION | epg2vdr@% | 2021-06-07 22:58:46 | 2021-06-07 22:58:46 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
    | epg2vdr | getlvrmin   | FUNCTION | epg2vdr@% | 2021-06-07 22:58:46 | 2021-06-07 22:58:46 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
    | epg2vdr | getupdflg   | FUNCTION | epg2vdr@% | 2021-06-07 22:58:46 | 2021-06-07 22:58:46 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
    +---------+-------------+----------+-----------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+

    Jetzt hab ich das Log 4 mal durch gesehen. EPGD startet. Fängt an Dinge zu laden. Z.B.

    Code
    Jun 12 00:53:01 vdr epgd: Downloaded 'ANIXE' for 2021-06-14 not changed, skipping.
    Jun 12 00:53:01 vdr epgd: Downloaded 'ATV' for 2021-06-14 not changed, skipping.
    Jun 12 00:53:01 vdr epgd: Downloaded 'BUTV' for 2021-06-14 not changed, skipping.
    Jun 12 00:53:01 vdr epgd: Downloaded 'C-NET' for 2021-06-14 not changed, skipping.
    Jun 12 00:53:01 vdr epgd: Downloaded 'CIN' for 2021-06-14 not changed, skipping.
    Jun 12 00:53:01 vdr epgd: Downloaded 'DISNE' for 2021-06-14 not changed, skipping.
    Jun 12 00:53:02 vdr epgd: Downloaded 'DMC' for 2021-06-14 not changed, skipping.
    Jun 12 00:53:02 vdr epgd: Downloaded 'FOX' for 2021-06-14 not changed, skipping.

    irgendwann ists dann vorbei und dann sieht man nur mehr das der EpgD gecrasht ist. Man sieht definitiv keine Absturtzmeldung. Im SQL Errorlog findet man auch nichts. Ist alles ok. Hmm... vielleicht ist beim bauen was schief gegangen. Die letzte Meldung ist dann immer:

    Code
    epghttpd: Closing mysql connection and calling mysql_thread_end(28139)
    Jun 12 00:53:56 vdr epghttpd: Closing mysql connection and calling mysql_thread_end(28139)
    Jun 12 00:53:56 vdr epghttpd: Info: Released the last usage of mysql_lib, calling mysql_library_end() now
    Jun 12 00:53:56 vdr epghttpd: normal exit

    Und im Ubuforum hab ich gepostet, weil ich mir dachte es ist ja eine generic Geschichte. Und ja ich gebs zu schön langsam nervt es. Wenn an den Luxux gewöhnt ist.... naja. ;)

    System: Gentoo VDR auf Proxmox virtualisiert im LXC
    Sundtek SkyTV Ultimate Dual

  • Das betrifft aber "nur" den epghttpd, NICHT den epgd selbst. Mal nach "epghttpd" greppen? Tut sich was auf http://localhost:9999/?

    Was sagt epgd-showmerge?

  • Jetzt hab ich ein paar Info's mehr. Der epgd läuft definitiv nur bis zu einem bestimmten Punkt. Dann crasht dieser.

    Code
    Jun 12 14:19:58 vdr epgd: XML File 'HDDIS-2021-06-16-"5cb9b85be67ebd659d60fd787b0155f0"#015$' processed, updated 38 events
    Jun 12 14:19:58 vdr epgd: Downloaded 'HISHD' for 2021-06-16 not changed, skipping.
    Jun 12 14:19:58 vdr epgd: Downloaded 'K1' for 2021-06-16 with (72706) Bytes, changed since last load.
    Jun 12 14:19:58 vdr epgd: XML File 'K1-2021-06-16-"b0145245e22156d5db13e22458e2cac6"#015$' processed, updated 24 events
    Jun 12 14:19:58 vdr epgd: Downloaded 'KIKA' for 2021-06-16 with (148872) Bytes
    
    malloc(): unsorted double linked list corrupted


    Crashmeldung: malloc(): unsorted double linked list corrupted


    Der HTTP Teil auf Port 9999 läuft. Das Interface lässt auch aufrufen, hat aber natürlich keine Daten.

    Code
    <- /data/log with [level:2;message:Uncaught TypeError: Cannot set property 'eTime' of undefined$line: 1$column: 100207$error: TypeError: Cannot set property 'eTime' of undefined$    at Object.<anonymous> (http://vdr.tux.lan:9999/epgd.js?1.1.165:1:100207)$    at i (http://vdr.tux.lan:9999/common.js?1.1.165:2:27151)$    at Object.fireWith [as resolveWith] (http://vdr.tux.lan:9999/common.js?1.1.165:2:27914)$    at z (http://vdr.tux.lan:9999/common.js?1.1.165:4:12120)$    at XMLHttpRequest.<anonymous> (http://vdr.tux.lan:9999/common.js?1.1.165:4:15680);_:1623500244432;] (expire at 01.01.1970 01:00:00)
    Jun 12 14:17:43 vdr.tux.lan epghttpd: webif: Uncaught TypeError: Cannot set property 'eTime' of undefined$line: 1$column: 100207$error: TypeError: Cannot set property 'eTime' of undefined$    at Object.<anonymous> (http:/vdr.tux.lan:9999/epgd.js?1.1.165:1:100207)$    at i (http://vdr.tux.lan:9999/common.js?1.1.165:2:27151)$    at Object.fireWith [as resolveWith] (http://vdr.tux.lan:9999/common.js?1.1.165:2:27914)$    at z (http://vdr.tux.lan:9999/common.js?1.1.165:4:12120)$    at XMLHttpRequest.<anonymous> (http://vdr.tux.lan:9999/common.js?1.1.165:4:15680)
    Jun 12 14:17:43 vdr.tux.lan epghttpd: -> data (45) (0 ms); Content-Type: application/json; charset=utf-8; Content-Encoding: gzip [{"result": {"state": 200, "message": "done"}}]

    System: Gentoo VDR auf Proxmox virtualisiert im LXC
    Sundtek SkyTV Ultimate Dual

  • Wie sieht es mit der Speicherzuteilung aus? Was sagt (h)top zum Speicher? Vielleicht earlyoom installieren und verfolgen, ob der freie Speicher geschluckt wird ...

    Hab dazu https://www.programmersought.com/article/81547454554/ gefunden, also ulimit kontrollieren.

    Achtung: mysql schluckt auch gern viel RAM/stack/heap.

  • Werte ok. Verbrauch nicht mal 1GB. Aber auch wieder interessant. Denn als die den Wert bei "stack size" auf 1024000kb erhöht hatte, kommt der "malloc(): unsorted double linked list corrupted" nun beim Start von epgd innerhalb von 5 Sekunden.

    Code
    free -m
                  gesamt       benutzt     frei      gemns.  Puffer/Cache verfügbar
    Speicher:       4096         411        3588           0          96        3684
    Swap:              0           0           0

    Noch was schräges. Seitdem ich das System aktualisierte. Schaut nämlich Htop so aus: (siehe Anhang) 16.0Z belegter RAM. Wie jetzt Zebibyte? :)

  • Kannst du einen Backtrace von dem Crash erzeugen, damit man sehen kann, wo es genau knallt?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich hab epgd mit dem Flag debug rekompiliert und strace installiert. Wenn das nicht das war was ich tun sollte, bitte mir ein wenig genauer erklären. Hab noch nicht so tief gedebugt.


    Code
    strace epgd -c /etc/epgd/ -n -t -l 5


    System: Gentoo VDR auf Proxmox virtualisiert im LXC
    Sundtek SkyTV Ultimate Dual

  • epgd mit dbg starten und dann den Backtrace rauslassen - also z.B. gdb mit gdb --args epgd -n aufrufen, dann mit logging on dafür sorgen, dass die Ausgaben mitgeschrieben werden und dann mit dem Befehl r(run) in der gdb-Shell loslaufen lassen.

    Sobald es geknallt hat solltest du bei vorhandenen Debug-Symbolen mit

    Code
    bt
    bt full
    thread apply all bt full

    anzeigen lassen können, was die letzten ausgeführten Codezeilen waren. Die erzeugte gdb.txt kannst du hier dann anhängen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Da fehlen die Debug-Symbole für libc6 und libmysqlclient.


    Der Crash scheint vom tvsp-Scraper zu kommen, mehr sieht man leider nicht - falls möglich lass dir mal die Infos für Frame #10 - #13 ausgeben - das geht nach dem Muster:

    Code
    frame 10
    info f
    info args
    info locals
    frame 11
    info f
    info args
    info locals
    # usw.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Debug Symbole beim SQL Client sind jetzt drinnen. Glibc muss ich erst nachlesen wie man die dort rein bringt.

    gdb.txt


    Nachtrag: Ich hab mal zum Test tvsp deaktiviert. Dann läufts sofort. 🤔

    System: Gentoo VDR auf Proxmox virtualisiert im LXC
    Sundtek SkyTV Ultimate Dual

    Einmal editiert, zuletzt von looking111 ()

  • Kann es sein, dass dein epgd und die Plugins noch gegen den libmysqlclient statt gegen den libmariadbclient gebaut wurden? Wenn du die Datenbank wechselst, musst du die Client-Bibliotheken entsprechend nachziehen.

    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!