[0.5] Live verursacht manchmal Absturz

  • Servus,


    wenn ich LIVE benutze, kommt es manchmal vor, das der VDR abstürzt, wenn ich auf die Timer-Ansicht schalte.
    Im Log steht dann:

    Code
    1. Oct 25 16:59:57 VDR kernel: [ 5262.597939] traps: vdr[11611] general protection ip:7f83fb70b99f sp:7f83b7da9ad8 error:0 in libc-2.15.so[7f83fb5d1000+1b5000]
    2. Oct 25 16:59:59 VDR vdr-crash: vdr exit with signal SEGV


    yavdr ist auf testing (apt-pinning), an Plugins sind geladen:

    Code
    1. markad extrecmenu streamdev-server menuorg osdteletext femon channellists epgsearch skinnopacity softhddevice dbus2vdr epg2vdr live tvguide devstatus undelete dynamite voldemort


    also ziemlich viel yavdr-Standard.


    Kann man dem irgendwie tiefer auf den Grund gehen?


    Danke und Gruss.
    Markus

  • Sowas hatte ich unter Debian auch schon öfter. Hatte mal die Vermutung, das passiert, wenn man irgendwelche Systmlibs aktualisert und den VDR danach nicht neu kompiliert.


    Aber da hilft wohl nur mal Debuggen.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Ok, muss ich mal machen.
    Ich bekomme es zuverlässig zum Absturz, wenn ich bei Live auf "Timer" gehe. Beim ersten Zugriff ist alles OK, lade ich die Seite neu (aktialisieren), stürzt der VDR ab.

  • Bei mir passiert das nicht (mehr). Nachdem das neulich mal bei mir passiert ist, hab ich den VDR komplett neu kompiliert, weil ich vor ein apt-get upgrade bei mir gemacht habe und dachte, dass es eventuell daran liegt.


    Werds mal beobachten.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Das Paket vdr-dbg bringt die Symbole und ein Script mit, welches ein Crashlog mit Backtrace unter /var/log/vdr erstellt.
    Das könnte auch helfen.


    Von einigen Plugins gibt es auch dbg-Pakete, die könnte man auch noch installieren.


    Lars.

  • Das Paket vdr-dbg bringt die Symbole und ein Script mit, welches ein Crashlog mit Backtrace unter /var/log/vdr erstellt.
    Das könnte auch helfen.


    Von einigen Plugins gibt es auch dbg-Pakete, die könnte man auch noch installieren.


    Lars.


    vdr-dbg habe ich schon drauf ... ich werde das am Wochenende mal angehen. Vllt. bringt es ja was ans Licht.

  • Hi!


    Ich habe bei mir jetzt auch sporadisch das Problem (benutze testing), allerdings nicht immer und bei mir kommt es auch schon, wenn ich einmalig auf Timer gehe und nicht mehrmals die Seite neu lade.


    Code
    1. Nov 9 11:50:37 yavdr kernel: [82203.819057] traps: vdr-dbg[26805] general protection ip:7fd36668a99f sp:7fd34b7f6ad8 error:0 in libc-2.15.so[7fd366550000+1b5000]


    Trotz installiertem vdr-dbg und vdr-plugin-live-dbg wird leider kein Backtrace in der crashlog erzeugt, es wird nur ein Core abgelegt. Ziemlich nervig die Situation, ich compiliere jetzt auch mal den VDR neu und beobachte dann mal weiter, aber das kann ja irgendwie auch nicht die Lösung sein...

    VDR: yavdr-ansible/20.04 LTS auf Intel NUC (BOXNUC6CAYH), 2x Kingston KVR16LS11/4, Harmony 700, yaUSBIR

    VDR-Server: yavdr-ansible/20.04 LTS in ESXi VM

  • Wenn ein core abgelegt wird, versucht doch mal ein "gdb vdr core" in dem Verzeichnis.


    Ich hatte das Problem auch diverse male. Hab dann einen bt erstellen wollen, aber seit dem trat es nicht mehr auf. X(

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Guter Hinweis, ich Dussel hatte das gdb Paket gar nicht installiert, daher kein crachlog ;)

    Files

    VDR: yavdr-ansible/20.04 LTS auf Intel NUC (BOXNUC6CAYH), 2x Kingston KVR16LS11/4, Harmony 700, yaUSBIR

    VDR-Server: yavdr-ansible/20.04 LTS in ESXi VM

  • Scheint ja irgendwas mit LongDescription zu sein. Weisst Du noch, wie die LongDescription bei dem Timer aussah?

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Hab die Aufnahme leider nicht mehr, da ich zur Zeit am testen bin auf der Maschine...

    VDR: yavdr-ansible/20.04 LTS auf Intel NUC (BOXNUC6CAYH), 2x Kingston KVR16LS11/4, Harmony 700, yaUSBIR

    VDR-Server: yavdr-ansible/20.04 LTS in ESXi VM

  • Hab auch mal wieder so einen Fall:



    Es muss mit bestimmten Timern zu tun haben, bei denen irgendwas ungewöhnliches in der LongDescription enthalten ist.


    Code
    1. virtual std::string const LongDescr() const { return std::string(m_event->Description() ? m_event->Description() : ""); }


    Hier mal das Event


    Code
    1. E 291967 1384980600 3000 50 FF
    2. T American Horror Story
    3. S Bitchcraft
    4. D Genre: Horror|Kategorie: Serie|Land: USA|Jahr: 2013|||[Tipp]||Die junge Zoe Benson erfährt, dass sie eine Hexe ist. Im Hexeninternat lernt sie, ihre Kräfte zu meistern. Doch Feinde machen Jagd auf sie.||Originaltitel: American Horror Story||Darsteller: Kathy Bates (Madame LaLaurie), Angela Bassett (Marie Laveau), Jessica Lange (Fiona), Taissa Farmiga (Zoe Benson)||Regie: Alfonso Gomez-Rejon|Audio: Stereo|Flags: [16:9] [Neu]||Quelle: DVB/TVM
    5. R 16
    6. e


    Erstaunilicherweise gehts, nachdem der VDR neugestartet ist. Woran könnte das liegen @C++ Profis?

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Ein falsch kodiert Unicode-String? Oder es ist eine race condition, weil das cEvent vom vdr mittlerweile entsorgt wurde?
    Ich weiß jetzt gerade nicht, ob live sich eine lokale Kopie des cEvent-Objektes anlegt, vielleicht sollte man das mal versuchsweise machen.


    Ich würde vermutlich im vdr in epg.c im Konstruktor und Destruktor von cEvent einfach Logmeldungen mit dem this-Pointer machen (%p) und dann beim Absturz nachsehen, ob das Ding nicht schon zerstört wurde.


    Lars.

  • Oder es ist eine race condition, weil das cEvent vom vdr mittlerweile entsorgt wurde?


    oder eben in Zeiten hochintelligenter EPG Lösungen einfach nur ersetzt...


    Graphtft hat an der Stelle auch noch eine kleine Schwäche - daher tendiere ich in Richtung von Lars


    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



  • oder eben in Zeiten hochintelligenter EPG Lösungen einfach nur ersetzt...


    ist das gleiche, wenn das Objekt nicht mehr an der ursprünglichen Adresse existiert. :)


    Ich bin mitterweile der Ansicht, dass man "flüchtige" Objekte des vdr wie Aufnahmen, Timer und Events sich niemals merken darf - nur an den Stellen, wo es Absicht ist, wie z.B. im EpgHandler (da muss man sich einen Pointer ja aber auch nicht merken, den bekommt man ja übergeben). Wenn im Plugin eine Funktion vom vdr aufgerufen wird, wo so ein Objekt übergeben wird und man länger gut davon haben will, dann muss man es sich kopieren (bzw. die relevanten Informationen daraus).


    Die Events bzw. cSchedules bieten immerhin ein Lock, so dass der vdr weiß, dass da gerade jemand die Daten liest, das muss man natürlich benutzen. Aber auf cEvent-Objekte darf man nur innerhalb des Locks zugreifen. Und Locks müssen naturgemäß so kurz wie möglich und so lang wie nötig sein.


    Bei den Aufnahmen (arbeite gerade an anderer Stelle damit, Stichwort recsearch) gibt es leider (noch?) keine Lock-Möglichkeit, weshalb man immer seine eigene Aufnahmenliste verwalten muss. Dann wird das Aufnahmeverzeichnis evtl. mehrmals von verschiedenen Nutzern gescannt, aber jedenfalls hat man dann die Kontrolle über seine Objekte.


    Timer hab ich mir noch nicht weiter angeschaut.


    Lars.

  • Das übersteigt meine Fähigkeiten, so dass ich auf eine Lösung warten muss. Ärgerlich ist das ganze nur dann, wenn gerade eine Aufnahme läuft und sich der VDR deshalb verabschiedet.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Ja, das ist es. Ich kann noch nicht genau sagen, wann ich dazu komme, mir das anzusehen.
    Es wäre mir lieber, der Maintainer des Plugins würde das tun, der kennt es sicherlich besser.


    Lars.

  • aber ist doch Mittwoch Lars? ;)


    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



  • ich reihe mich mal in die Reihe der wartenden ein..;-)