[epgd] nach Update auf mariadb 10.2.15 -> Felddefinitionen werden bei *jedem* Start angemault

  • also das selbe.

    und geht das auch ohne Fehlermeldung:


    Code
    alter table timers modify column state VARCHAR(1) comment '\'D\'eleted, \'R\'unning, \'F\'inished' default u;
  • horchi

    nein, das geht nicht.

    Code
    MariaDB [epg2vdr]> alter table timers modify column state VARCHAR(1) comment '\'D\'eleted, \'R\'unning, \'F\'inished' default u;
    ERROR 1054 (42S22): Unknown column 'u' in 'DEFAULT'
  • das ist beruhigend!


    Dann hatte wohl eine die Idee die Ausgabe von

    Code
    select table_schema, column_name, column_type, column_comment, data_type, is_nullable, character_maximum_length, column_default, numeric_precision from information_schema.columns where table_name = 'timers' and column_name = 'state';

    aufzuhübschen :o


    Bekommst du auch hier bei varchar x oder varchar1 Feldern wie state die einfachen Hochkommata angezeigt?


    Code
    MariaDB [epg2vdr]> select id, state, file from timers;
    +-----+-------+----------------------------------------------------------------------+
    | id  | state | file                                                                 |
    +-----+-------+----------------------------------------------------------------------+
    | 565 | E     | Death in Paradise~01x03 - 003. Der Voodoo-Zauber                     |
    | 629 | E     | MacGyver~?x? - ?. Von den Toten auferstanden                         |
    | 641 | E     | Death in Paradise~08x01 - 057. Der Tote im Bus                       |
    | 642 | E     | Death in Paradise~08x02 - 058. Tierische Rache                       |
    | 644 | E     | Death in Paradise~08x04 - 060. Bittere Bohnen                        |
  • horchi

    da bekomme ich gar nichts, die Tabelle ist leer. Test Timer habe ich vorher angelegt. Was brauche ich sonst noch, um eine Ausgabe zu bekommen? Das ist ein reiner Test vdr, auf dem lief noch nie eine Aufnahme ...

  • ggf war es noch zu früh und der Timer noch nicht übernommen, wie hast du den angelegt?

    Ab einfachsten im WEBIF des epgd dann ist er sofort in der Tabelle

  • horchi

    den Timer habe ich über Live angelegt. Mit WEBIF angelegtem Timer habe ich eine Ausgabe. Nein, kein Hochkomma.

    Code
    MariaDB [epg2vdr]> select id, state, file from timers;
    +----+-------+------+
    | id | state | file |
    +----+-------+------+
    |  1 | u     | NULL |
    +----+-------+------+
    1 row in set (0.001 sec)
  • okay dann schlägt das nur in der Tabelle mit den Tabellenbeschreibungen zu

    ich bastle mal was

  • horchi

    Mir ist gerade aufgefallen, das gleiche Problem ist auch noch in epghttpd.

    Code
    Feb 10 18:38:52 VDR-2004-Dev epghttpd: Calling mysql_init(10850)
    Feb 10 18:38:52 VDR-2004-Dev epghttpd:   Info: Definition of field 'timers.STATE' modified, try to alter table
    Feb 10 18:38:52 VDR-2004-Dev epghttpd: Execute [alter table timers modify column state VARCHAR(1) comment '\'D\'eleted, \'R\'unning, \'F\'inished' default 'u']
    Feb 10 18:38:52 VDR-2004-Dev epghttpd:   Info: Definition of field 'timers.ACTION' modified, try to alter table
    Feb 10 18:38:52 VDR-2004-Dev epghttpd: Execute [alter table timers modify column action VARCHAR(1) comment '' default 'a']
    Feb 10 18:38:52 VDR-2004-Dev epghttpd: Starting http server …


    Außerdem crashed der epghttpd beim Beenden. Scheint wohl an der Python Version zu liegen, unter Ubuntu 18.04 besteht das Problem nicht.

  • Sorry, ich ziehe meine epghttpd Problem Beschreibung auch wieder zurück. Ich habe mir durch apt-get upgrade unbemerkt den Patch wieder überschrieben. Aber der Crash beim Beenden ist geblieben.

  • Scheint wohl an der Python Version zu liegen, unter Ubuntu 18.04 besteht das Problem nicht.

    Die Pakete für bionic werden IIRC noch gegen Python 2.7 gebaut.


    Ich kann es unter Arch Linux ARM mit Python 3.8 nachvollziehen und versuche herauszufinden, wo es da genau (vermutlich im Destructor) knallt.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Das sieht so aus, als würde der Destructor Python::~Python() (https://projects.vdr-developer…it/tree/lib/python.c#n201) mehrfach aufgerufen und beim zweiten Mal knallt es in Python::exit(), wenn der Refcount für pFunc verringert werden soll, das Objekt aber vermutlich schon vom Garbage Collector erwischt wurde.


    Hier hilft es, wenn ich die Zeile https://projects.vdr-developer…mon.git/tree/httpd.c#n212 auskommentiere, wobei mir nicht ganz klar ist, warum der Destructor da automatisch aufgerufen wird, da das Objekt ja extra mit new erstellt wurde (https://projects.vdr-developer…mon.git/tree/httpd.c#n184)...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ah, der zweite Aufruf des Dekonstruktor kommt aus https://projects.vdr-developer…ree/lib/searchtimer.c#n86 - aber warum gibt es dann zum Crash? Räumt Py_Finalize(Ex) da eventuell PyObjects aus der anderen Instanz der Klasse Python ab, weil es eigentlich nur einen globalen Interpreter gibt (https://docs.python.org/3.8/c-…l#sub-interpreter-support)?


    Eigentlich würde doch eine einzige Instanz von Python genügen, da wird ja eh immer das selbe Python-Modul geladen...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • In der aktuellsten Version im Git (baut gerade in den yaVDR-PPAs) hat horchi das Problem behoben.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich habe gerade epgd und epg2vdr auf die aktuelle Version gebracht.


    Bei ersten Start von epgd ist mir die folgende Meldung aufgefallen:

    Nachdem ich epgd nochmal neu gestartet habe waren die Meldung aber weg.


    Dann habe ich epg2vdr auf den neusten Stand gebraucht und erhalte dort bei jedem Start des VDR mehrfach die Meldung:

    Code
    epg2vdr: Fatal: Missing definition of field 'timers.EVTSTARTTIME' in dictionary!
    epg2vdr: Fatal: Field 'timers.EVTSTARTTIME' not defined (missing in dictionary)

    Gruß dile

  • zu 1) das alter ist normal da passt der epgd die Tabelle an.


    zu 2) sieht aus als wäre die epg.dat des Plugins nicht mit aktualisiert worden.

    Gerade nochmal geschaut im git ist die richtige:
    https://github.com/horchi/vdr-…ster/configs/epg.dat#L614

Jetzt mitmachen!

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