[ANNOUNCE] VDR developer version 2.3.7

  • Man könnte doch sicherlich dafür sorgen, dass wenn von "Gerät 1" ein Eingabe Event kommt, dann die Eingabe für x Millisekunden die Eingabe für alle Andern gesperrt ist, oder?


    Ich glaube, das Problem kann man ignorieren. In der Regel wird man nicht simultan über zwei Kanäle Eingaben machen und selbst wenn sich mal zwei Personen in die Quere kommen werden das die Betroffenen recht schnell merken, wenn sich das Menü "einfach so" ändert 8o

    VDR 2.6.5 Kodi 18.6-Leia
    Debian GNU/Linux 12, Thermaltake DH102, ASUS PRIME N100I-D, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.3, cecremote 1.5.0, osd2web 0.3.2, softhddevice v2.0.6-GIT97e825d

  • Ich hatte jetzt an 2 verschiedenen Tagen zur jeweils gleichen Minute einen Segfault auf meinem Wiedergabe-VDR. Der Segfault trat ein beim Betrachten von live-TV, zu einem Zeitpunkt, an dem am VDR-Server eine Aufnahme startete. /video ist per nfs auf beiden Rechner gemounted.


    Code
    Jun 18 19:58:07 vdr vdr[273]: [501] video directory scanner thread started (pid=273, tid=501, prio=low)
    Jun 18 19:58:07 vdr kernel: video directory[501]: segfault at 82abc14 ip 08178f61 sp b13be190 error 6 in vdr[8048000+1ba000]
    [...]
    Jun 20 19:58:23 vdr vdr[259]: [460] video directory scanner thread started (pid=259, tid=460, prio=low)
    Jun 20 19:58:23 vdr kernel: video directory[460]: segfault at 82abbdc ip 08178f61 sp 8ec46190 error 6 in vdr[8048000+1ba000]


    19:58 startet der Tagesschau-Timer.


    18.06.:


    20.06.:


    Das sieht sich mehr als nur ein wenig ähnlich, finde ich.


    Was kann ich noch an Infos melden?


    Christian

  • Ist das der einzige Timer, oder gibt es andere, die funktionieren?


    Fährt der Rechner für diesen Timer hoch, oder läuft er zu dem Zeitpunkt bereits längere Zeit?


    Kannst du im core-File schauen, welchen Wert logIndex zu dem Zeitpunkt hat?


    Klaus

  • Hallo Klaus,


    Im core vom 18.06.:
    (gdb) print logIndex
    $1 = 65536


    und vom 20.06.:
    (gdb) print logIndex
    $1 = 65550


    Der Server läuft durch, lediglich vdr lasse ich dort morgens gegen 4 Uhr neu starten. Der Client lief heute >30 Minuten bis zum Crash, am 18. bestimmt auch. Die Aufnahmen werden auf dem Server durchgeführt, der Client selbst hat keinerlei Timer programmiert.


    Für andere Timer ist mir das Verhalten bisher nie bewusst untergekommen.

    Code
    vdr64 ~ # grep Tagess /etc/vdr/etc/timers.conf
    1:S19.2E-1-1019-10301:MTWTFSS:1958:2018:50:99:Tagesschau:<epgd><timerid>33</timerid></epgd>


    Christian

  • Ich kann mir beim besten Willen nicht vorstellen, wie logIndex auf solche Werte kommen kann.
    Bau doch bitte mal folgende Testausgaben ein und melde dich wieder, wenn sie erzeugt werden:


    Klaus

  • Ich sehe da auch nicht viele Möglichkeiten, evtl. wenn ein Index aus dem Ruder läuft und bei der Veränderung von logCounter in der Check-Funktion über das Array hinaus gegriffen wird? Wie auch immer das passieren könnte...


    Lars.

  • kls


    Ich glaub das Problem hatte ich auch bereit mehrfach :)



    Ich bilde mir ein, dass es nicht mehr auftritt, seitdem ich den Skin von skindesigner auf VDR-Native gewechselt habe, aber sicher bin ich mir nicht.


    Peter

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • seitdem ich den Skin von skindesigner auf VDR-Native gewechselt habe

    Käme nicht überraschend, da bekannt ist, dass "vdr-plugin-skindesigner" Anpassung bzgl. dem Locking im VDR benötigen würde ...


    - skindesigner - bad locking order for vdr-2.3.x
    - [ANNOUNCE] VDR developer version 2.3.6


    Gruß
    Frank

    HowTo: APT pinning

  • Käme nicht überraschend, da bekannt ist, dass "vdr-plugin-skindesigner" Anpassung bzgl. dem Locking im VDR benötigen würde ...


    Also mein Verständnis dieser "Locking-Nummer" ist wie folgt:
    In die neueren VDR-Versionen wurde ein Mechanismus eingebaut, um falsche Locking-Sequenzen erkennen zu können.
    Diese falschen Locking-Sequenzen können potentiell zu mehr oder weniger zufälligen, schlecht erkennbaren Abstürzen führen.


    Aber: Mein VDR ist bisher mit skindesigner (so gut wie :) nie abgestürzt und jetzt in den letzten Tagen mehrfach, ohne dass sich an der codebase von skindesigner was geändert hat.


    Gibt es hier nicht eher einen Überlauf in dem neuen VDR-Mechanismus, der falsche Locking-Sequenzen erkennen soll?

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Ich hab genau die gleichen Probleme mit skindesigner und 2.3.7 und stell mir die gleiche Frage warum plötzlich so große Probleme auftreten wenn der vdr das nur aufzeigt mit den locking Problemen und sich am Plugin selbst seit Monaten nichts geändert hat...


    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 sehe halt einfach nicht, wie und wo logIndex diese seltsamen Werte annehmen kann. Ich stehe da vor einem vollkommenen Rätsel!


    Wenn das für jemanden ein großes Problem ist, dann kann er auch in thread.c die Zeile


    #define DEBUG_LOCKSEQ


    auskommentieren. Dann werden halt die Lock-Sequenzen nicht mehr geprüft.


    Klaus

  • Nur mal ein Schnellschuss: Kann nicht in logCounter der Index um einen zu gross werden?

    vdr-2.6.7

    softhddevice, dbus2vdr, dvd, epgsearch, femon, graphtftng, web, menuorg,
    osdteletext, radio, recsearch, satip, tvguide, vnsiserver

    ubuntu focal, yavdr-ansible, linux-5.15 ,AsRock J4105, CIne CT-V7 DVB-C

  • TomJoad: ich glaube, da hast du den Finger in die Wunde gelegt!
    Womöglich laufen mit skindesigner ein paar mehr Threads, und dann langt logCounter in das unmittelbar dahinter liegende logIndex rein (DEBUG_LOCKCALL ist ja standardmäßig nicht definiert). Bei genauerer Überlegung ist es natürlich Quatsch, daß logCounter ein festes Array ist, denn den Counter muß es ja pro Thread geben. Das muß ich nochmal etwas umgestalten.#


    Aber zumindest ist jetzt mal klar, wie es zu diesem Fehler kommen konnte. Well spotted!


    Ich schlage vor, bis zu einer Lösung einfach DEBUG_LOCKSEQ auszuschalten.


    Klaus

  • Weiß nicht, ob das weiter hilft:


  • Ich glaub das Problem hatte ich auch bereit mehrfach :)


    Sieht aus wie meiner von grad eben:


    Die Testausgabe von Klaus ('invalid logIndex: logIndex') hat dabei nicht ausgelöst.
    Der Crash kam nicht bei live-TV, sondern beim Navigieren durch das recordings-menu beim Ordnerwechsel in 'Tagesschau'.


    Christian

  • Ich hoffe, daß das Problem mit beiliegendem Patch behoben ist.


    Ich habe darin zwei Dinge gefixt. Zum einen werden jetzt die Thread-Einträge in threadIds und flags wiederverwendet, womit die Liste immer nur so viele Einträge hat, wie gleichzeitig Threads einen Lock halten (und nicht mehr beliebig groß wird). Und die Größe von logCounter ist separat definiert und wird überwacht (wobei die niemals überschritten werden sollte, und wenn, dann setzen wir halt SLL_THREADS höher).


    Klaus

  • Kann man evtl drüber nachdenken vllt ein "zwischenstable" vdr zu releasen sobald die aktuellen Themen mit MTD und der lock order ausgestanden sind.


    Es ist halt so das man wegen MTD an einigen Stellen auf dev rumwerkelt und nie weiß ob die Kiste nach dem nächsten Update nicht mehr Probleme hat als vorher, zurück auf stable geht aber nicht weil dann das CAM nicht wie geünscht arbeitet. Wäre vllt auch auch für die Pluginentwickler schön nicht mit so vielen 'ifdefs' arbeiten zu müssen.


    Ansonsten würde ich mir in einem separaten ppa einen gut funktionierenden Stand einfrieren wollen.


    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



Jetzt mitmachen!

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