[0.5] segfault beim Beenden von vdr

  • Hi all,


    beim Beenden vom VDR bekomme ich immer folgenden Eintag im syslog:


    Code
    Feb 24 15:59:20 VDR-Office vdr-dbg: [953] caught signal 15
    Feb 24 15:59:20 VDR-Office vdr-dbg: [953] exiting, exit code 0
    Feb 24 15:59:20 VDR-Office kernel: [   47.401890] vdr-dbg[953]: segfault at 7fd3de45d718 ip 00000000005310fe sp 00007fffc80a4520 error 4 in vdr-dbg[400000+1a1000]
    Feb 24 15:59:21 VDR-Office kernel: [   47.644256] init: vdr main process (953) killed by SEGV signal


    sudo gdb vdr-dbg /var/log/vdr/core.953


    (gdb) bt full



    Hat jemand eine Idee ?


    Thx
    JurKub

    VDR1: Asus P5B, 2048MB, 2 x Mystique SaTiX-S2 V2 CI Dual, Colorful G210, 7" Display, 1TB 2,5" SATA HD, Compact Flash to SATA 8GB CF Card --> yaVDR 0.6.1
    VDR2: Asus
    B85M-E, 8192MB, 1 x TT-Budget S2-3200 PCI, MSI GF GTX 1050-2GB, SATA Flash Modul 8GB --> yaVDR 0.6.1
    VDR3: Acer Revo 3600, 2048MB, Compact Flash to SATA 8GB CF Card --> yaVDR 0.6.1

  • Poste mal mehr vom VDR Log.


    Das scheint einer der Abstürze beim aufräumen der C Laufzeitumgebung zu sein (d.h. der VDR ist eigentlich schon beendet), und diese sind egal. Ich habe auch aufgegeben diese zu verfolgen.


    cu

  • vom syslog ? vom (gdb) bt full ist das schon alles

    Dateien

    VDR1: Asus P5B, 2048MB, 2 x Mystique SaTiX-S2 V2 CI Dual, Colorful G210, 7" Display, 1TB 2,5" SATA HD, Compact Flash to SATA 8GB CF Card --> yaVDR 0.6.1
    VDR2: Asus
    B85M-E, 8192MB, 1 x TT-Budget S2-3200 PCI, MSI GF GTX 1050-2GB, SATA Flash Modul 8GB --> yaVDR 0.6.1
    VDR3: Acer Revo 3600, 2048MB, Compact Flash to SATA 8GB CF Card --> yaVDR 0.6.1

    Einmal editiert, zuletzt von JurKub ()

  • Jup, VDR ist schon beendet.


    Es ist schon nicht ganz einfach rauszufinden welches Plugin hier die Liste versaut hat. Aber wie gesagt, diese Art Abstürze kannst du ignorieren.


    cu

  • ok, danke für's anschauen :)

    VDR1: Asus P5B, 2048MB, 2 x Mystique SaTiX-S2 V2 CI Dual, Colorful G210, 7" Display, 1TB 2,5" SATA HD, Compact Flash to SATA 8GB CF Card --> yaVDR 0.6.1
    VDR2: Asus
    B85M-E, 8192MB, 1 x TT-Budget S2-3200 PCI, MSI GF GTX 1050-2GB, SATA Flash Modul 8GB --> yaVDR 0.6.1
    VDR3: Acer Revo 3600, 2048MB, Compact Flash to SATA 8GB CF Card --> yaVDR 0.6.1

  • Hallo,
    sowas darf man nicht ignorieren!
    Es ist ein sicheres Zeichen dass etwas im Code nicht stimmt.
    Z.B.: Ein Callback wurde nicht abgeschaltet und es wird versucht ihn aufzurufen (obwohl das gerufene Modul bereits beended wurde).


    Sicher, dies ist nicht immer einfach zu finden, aber es ist machbar.

    Grüße, Dieter :)

  • Hallo,
    sowas darf man nicht ignorieren!
    Es ist ein sicheres Zeichen dass etwas im Code nicht stimmt.
    Z.B.: Ein Callback wurde nicht abgeschaltet und es wird versucht ihn aufzurufen (obwohl das gerufene Modul bereits beended wurde).


    Jup, aber danach räumt das System doch eh auf. Also wo ist das Problem?


    Sicher, dies ist nicht immer einfach zu finden, aber es ist machbar.


    Wie? Nahezu jedes Plugin nutzt ListBase, und das Problem tritt nur sporadisch auf, da debuggt man sich ja zu tode ;)


    cu

  • Hallo,
    wenn an Fehler ignoriert, wird man irgendwann dafür bestraft. Und zwar dann wenn es am wenigsten passt.


    EDIT: Ich verwende gerade MSCGEN für eine ähnliches Problem (im Job). Aber auch simple Log-Einträge sind Hilfreich.

    Grüße, Dieter :)

  • wenn an Fehler ignoriert, wird man irgendwann dafür bestraft. Und zwar dann wenn es am wenigsten passt.


    Jup. Das Problem ist halt das es beim VDR + <viele Plugins> viele solcher Probleme gibt. Wirklich sehr sehr viele ;)


    Und nur die wenigsten Loggen sowas überhaupt, den meisten fällt vermutlich gar nicht auf wenn der VDR beim Beenden abstürzt (auch nicht wenn der Absturz an relevanten Stellen auftritt).
    Mein vdr Startscript loggt den Exitcode und sichert für den Fall Exitcode > 127 automatisch das Log und den Backtrace. Daher sehe ich sehr deutlich diese Probleme ;)


    EDIT: Ich verwende gerade MSCGEN für eine ähnliches Problem (im Job). Aber auch simple Log-Einträge sind Hilfreich.


    Naja, mein Ansatz wäre erstmal der Klasse nen Infofeld mitzugeben und dann ALLEN Plugins anzugewöhnen beim Erstellen des Objektes diese Info mitzugeben. Dann wüsste man wenigstens erstmal von welchen Plugin es kommt.



    Aber das macht ne Menge Arbeit. Und wenns nur nen Prolbem ist was zuschlägt nachdem der VDR beendet wurde gewinnt die Faulheit ;)


    cu

  • Kommt darauf an, wo es passiert.


    Ich hatte welche in meinem Plugin, da wurde dann kein EPG und Kanalliste mehr geschrieben.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Genau, deswegen bezieht sich meine Aussage auch wirklich nur auf die Segfaults nach diesem kommen


    Weil dierekt nach "exiting, exit code 0" ist der vdr dann auch komplett beendet. Das ins Syslog zu schreiben ist ja seine letzte Handlung ;)


    Alle davor können zu seltsamen Seiteneffekten führen. Beim "stopping Plugin foo" sichern ja z.B. viele ihre Daten. Wenns davor abstürtzt ist es natürlich etwas problematisch ;)


    cu

Jetzt mitmachen!

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