[vdr 2.4 vdr-plugin-live] crash beim Aufruf von Timer

  • Hallo,

    ich bekomme sporadisch einen Crash beim Aufruf von "Timer" in VDR Live.

    Mein System basiert auf den Quelldateien von yavdr repository experimental und läuft unter Ubuntu 18.04.

    VDR

    Hier der Backtrace vom Crash:




    Ich habe das Live Plugin in Verdacht, da sich der Fehler reproduzieren lasst, wenn man in Live nur oft genug auf "Timer" klickt. Hier ist mein Wissen aber am Ende, vielleicht kann sich das mal einer der Entwickler ansehen.


    Danke

    Thomas

  • > da sich der Fehler reproduzieren lasst, wenn man in Live nur oft genug auf "Timer" klickt.

    Habe ich getestet. Kann ich nicht reproduzieren.


    De-installiere doch mal alle Plugins außer Live und teste noch mal.


    ~Markus

    VDR1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 18.04, VDR 2.4x
    VDR2: ASUS P4B533, Celeron 2.4G, FF 1.5, Ubuntu 10.10, VDR 1.6 (SS2 Rev 2.6B)
    VDR Server: sheeva-plug

  • Hallo Markus,

    so schnell bekomme ich den Fehler meist auch nicht reproduziert.

    Die lange Liste der Plugins ist durch das neu bauen aus den Quelldateien entstanden, der Fehler tritt auch auf mit:

    Und da kann ich nicht mehr viel entfernen, sonst geht nichts mehr.

  • Hi,

    Warum baust du neu? Nimm doch die Pakete von ya im Bionic Repo direkt?

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Hi,

    Ok. Ist das aktuelle Live-Plugin oder eine alte Version?

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Hi,



    Die Liste ist zu lang.

    Du brachst doch nur


    live


    dann sehr of auf "Timer" drücken und warten, ob der Fehler kommt ...

    VDR1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 18.04, VDR 2.4x
    VDR2: ASUS P4B533, Celeron 2.4G, FF 1.5, Ubuntu 10.10, VDR 1.6 (SS2 Rev 2.6B)
    VDR Server: sheeva-plug

  • Hi,

    Stimmt wahrscheinlich...

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Seit ihr sicher, dass es mit live zu tun hat? Ich setzte seit zwei Wochen yavdr ansible ein und bekomme regelmäßig einen Crash (irgendwas mit coredump), wenn ich im Bereich Timer etwas einfüge oder lösche. Nach dem Neustart vom VDR kann ich meine Aktion dann problemlos durchführen. Ich setzte allerdings noch zusätzlich epgd und epg2vdr ein. Vielleicht hat es auch damit zu tun.

    Silverstone LC 16-MR, P5N7A-VM , Cine S2 Dual DVB-S2 V5.5, E5200, 64 GB Crucial CT064M4, 2 TB WD 20EARX

  • Nein, sicher ist (noch) gar nichts, dazu müsste mal jemand den Backtrace analysieren. Ohne wirklich zu verstehen, was da drin steht, sieht es für so aus, dass sich in dem Moment, wo Live die Timerliste aufbaut, sich die Anzahl der vorhanden Timer aufgrund eines epg Updates reduziert. Diese Vermutung basiert auf den Codestellen, auf die der Backtrace verweist.

    epg2vdr und epgd habe ich auch. epg2vdr habe ich zur Zeit nicht in Verdacht, er kommt im Backtrace nicht vor. Trotzdem habe ich ihn gerade zum Testen entfernt und zur Zeit bekommen ich den Fehler nicht hin. Zufall oder verändertes Verhalten beim epg Update, dass dann die Fehlersituation nicht entsteht ?

  • Seit ihr sicher, dass es mit live zu tun hat? Ich setzte seit zwei Wochen yavdr ansible ein und bekomme regelmäßig einen Crash (irgendwas mit coredump), wenn ich im Bereich Timer etwas einfüge oder lösche. Nach dem Neustart vom VDR kann ich meine Aktion dann problemlos durchführen. Ich setzte allerdings noch zusätzlich epgd und epg2vdr ein. Vielleicht hat es auch damit zu tun.

    So ein Verhalten habe ich auch seit ich ansible einsetze. Auch gerne mal ein vdr-restart, wenn eine Aufnahme startet oder ein epgsearch-Update stattfindet. Also ich vermute eher epgsearch als Verursacher.

  • Übersehe ich die eigentliche Fehlermeldung im Backtrace? Was steht im syslog dazu?


    Grob gesagt will live die Timer neu laden und löscht dafür seine interne Liste mit Timern. Dabei werden die Destruktoren der Timer aufgerufen, die sich aus dem Schedule austragen wollen, indem sie einen Counter im Event (Anzahl verknüpfter Timer) reduzieren. Und da geht irgendwas schief. Ohne in den Source gucken zu können, könnte es sein, dass der gemerkte Pointer vielleicht nicht mehr gültig ist?


    Wenn man die vdr Objekte in einer eigenen Liste speichert, kann es immer unerwartete Nebenwirkungen haben, weil einiges an Logik in Konstruktoren und Destruktoren liegt. Besser wäre es, eine eigene Klasse zu erstellen, die genau die Informationen enthält, die man benötigt. Dann muss man eben nur alle Felder entsprechend kopieren. Aber anders bekommt ihr das nicht entkoppelt.

    Oder live merkt sich gar keine Objekte und arbeitet direkt mit den vdr Objekten und Listen. Aber dann darf es sich keine Pointer merken, jedenfalls nicht außerhalb des Read-Lock. Und den sollte man immer so kurz wie möglich halten. Das macht dann aber Sortieren wieder schwerer.


    Ich rate jetzt aber nur...


    Lars

  • Hallo Lars,

    vielen Dank für deinen Input.

    Im syslog steht dies:

    Die Fehlermeldung habe ich wohl beim copy paste abgeschnitten:


  • Hi,

    Evtl mal neue Live Version testen? Da wird doch gerade aktiv dran geschraubt in Hinblick auf die Wiedergabe im Browser.

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Hier im Forum.

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de