[remote] Plugin-Verwendung beendet VDR

  • Der Fehler scheint von Start des SQL-Service ausgelöst zu werden.

    C++: epg2vdr.c
    bool cPluginEPG2VDR::Start()
    {
       Mysql_Init_Exit_v1_0 req;
    
       req.action = mieaInit;
       Service(MYSQL_INIT_EXIT, &req);


    Der EPG-Handler ist damit wohl endgültig raus.

    Ich hatte den auch schon deaktiviert und es kam trotzdem zu dem Fehler.


    Es wäre jetzt schön, wenn mal jemand mit an sich funktionierendem Setup libefence mal probieren könnte.

    Ich würde ungern einen "Geisterfehler" jagen, der nur durch die fehlende Datenbank existiert,

    Gruss
    SHF


  • Also, der SQL-Service ist es wohl auch nicht.

    Wenn man den deaktiviert, deaktiviert man wohl hält man wohl das Plugin, wenn nicht den ganzen VDR an.


    Den Absturz im Menü kann ich übrigens inzwischen auch bestätigen.

    Ziemlich sicher reproduzierbar, sobald man ein Menü vom Plugin öffnet.


    Im menu.c gib viele Funktionen, die cMenuEpgScheduleItem verwenden. Das beinhaltet wohl die Kopie von einem Pointer auf ein Event vom Typ cEvent.

    Meine Vermutung ist, dass irgendwas mit dem Pointer nicht stimmt, bzw. irgendwo der Readlock fehlt.

    Die Sache wird da aber recht unübersichtlich und ich hatte bislang keine Zeit da weiter zu suchen. Und da das Wetter besser wird, wird die Zeit für sowas eher knapper.

    Gruss
    SHF


  • Trotzdem schon mal danke fürs Reinschauen!

  • Den Fehler mit dem Menü habe ich beseitigen können.

    Das lag in der Tat daran, dass die Datenbank nicht initialisiert war.

    Der Patch hilft also nur, wenn im Log vorher diese Meldung aufgetaucht war:

    epg2vdr: Initialization failed, start of plugin aborted!

    In dem Fall wird jetzt das Menü blockiert.

    Dateien

    Gruss
    SHF


  • Dank den "tollen" Osterwetters, habe ich es doch noch mal mit valgrind und address sanitizer versucht.


    Den Fehler, den libefence zeigt (s.o.) zeigen beide nicht. Mit den Änderungen aus den vorherigen Beitrag bekommen keine Abstürze mehr.

    Ich vermute daher mal, das bei libefence ist ein false positive.


    Dafür finden sowohl valgrind als auch address sanitizer memory leaks im VDR (auch ohne jegliche Plugins.

    Immer im Zusammenhang mit libfontconfig.so.1. Ich vermute den Fehler momentan also eher da und werde erstmal das System updaten und hoffe das erledigt sich von selbst.


    Für die, die weiter basteln wollen:

    Für Valgrind vdr starten mit: (eher langsam!)

    valgrind --leak-check=yes vdr ....


    Der address sanitizer wird einkompiliert, dann ganz normal starten.

    Ich hatte das mit der folgenden Änderung an der Make.config vom VDR gemacht.

    Code: Make.config
     ### The C compiler and options:
     
     CC       = gcc
    -CFLAGS   = -g -O3 -Walls
    +CFLAGS   = -g -O3 -Wall -fsanitize=address
     
     CXX      = g++
    -CXXFLAGS = -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
    +CXXFLAGS = -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fsanitize=address


    Ich denke, ohne laufenden SQL-Server kommt man nicht mehr weiter, da muss also jetzt jemand anderes ran.

    Gruss
    SHF


Jetzt mitmachen!

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