Problemanalyse: Schnee in schwazen Flächen

  • Hallo Zusammen,


    da ich schon sehr lange nach den Gründen suche für das Problem mit dem „Schnee“, hier mein Beitrag. Ich habe bewusst ein neues Thema eröffnet, da ich hier konkrete Ideen und Infos habe und auch nur dazu Beiträge sehen möchte. Sonst haben wir schnell wieder 10 Seiten und kein Ergebnis. Beachtet bitte, dass es sich hierbei um keine Anleitung zum umgehen des Fehlers handelt, sondern viel mehr helfen soll den Fehler zu beheben. Auch werde ich hier bewusst nicht schreiben, was ich alles getestet habe, sondern nur was das Ergebnis daraus ist. Ich hab dazu einfach keine Lust, weil es soviel ist, dass es mehrere DIN-A4 Seiten füllen würde.


    Der Grund für das ganze Problem ist, dass ein Hardware-Overlay nicht sauber beendet wurde. Verursacht wird das ganze vom vdr-frontend. Betroffen sind alle aktuellen Treiber von Nvidia auch der 195er. Allerdings ist der 260er so anfällig, das man nur hier den Fehler auf passender Hardware reproduzieren kann. Bei den anderen Treibern passiert der Fehler sehr selten. Auch die Vermutung das VDPAU Schuld sei, kann ich nicht bestätigen, da ein vdr-frontend ohne VDPAU den gleichen Fehler verursacht. Versuche habe auch bestätig, dass der Fehler auch auf einem plain X-Server auftritt (also kein wm, xdm oder Hintergrundbild nur vdr-frontend).


    Wie wird das ganze ausgelöst:


    Aktuell lässt sich das ganze nur per Upstart auslösen oder per SIGKILL. Das heißt „stop vdr-frontend“ oder killall -9 vdr. Wer jetzt ankommt und sagt "bei mir passiert das auch wenn ich „restart vdr“ verwenden", dem reiß ich den Kopf ab, den ein „restart vdr“ löst auch nein stop vdr-frontend aus :D.


    Erste Idee war das Upstart dann ein SIGKILL sendet und habe daher den kill timeout wert hoch gesetzt (sendet SIGKILL falls SIGTERM nicht reicht nach X Sekunden). Was aber leider zu keiner Behebung führte.


    Was für Folgefehler treten auf:


    Sobald der ursprüngliche Fehler einmal aufgetreten ist, ist der X-Server hinüber. Alles was auf diesem dann gezeichnet wird, was die Overlayfarbe trifft, wird von der Grafikkarte überzeichnet (z.B. Schnee- bzw. Durchzeichneneffekt). In XBMC kann man das schon in der Startanimation (Fade) sehen.
    Mir ist auch aufgefallen, dass sobald der X-Server diesen Fehler hat, segfaults hin und wieder auftreten. Habe ich den Fehler gelöst z.B. durch das Neustarten des X-Servers, konnte ich noch keinen Segfault verzeichnen. Das ganze lässt sich auf unterschiedlichen Mainboard mit verschiedenen RAMS feststellen. Ja Memtest lief zu Sicherheit!


    Lösung, Workaround und Ideen:


    Wie geschrieben schein ein neustart des X-Servers nachdem dem beenden des vdr-frontend das Problem zu umgehen. Witziger weise kann man das ganze auch beheben, wenn man in Upstart-Script vom vdr-frontend das user change per su raus nimmt. Das auch dafür spricht das das ein SIGTERM gesendet wird. Allerdings hilft das nur beim vdr-sxfe. Xine wird weiterhin nicht sauber beendet, so dass es nicht alleine am su liegen kann.
    Was mich interessieren würde, gibt es eine Möglichkeit eine Art Listener auf eine PID zu setzten um zusehen welches Signal beim beenden wirklich beim Frontend ankommt.
    Der Fehler lässt sich mit einem auf der Konsole gestartetem Frontend nicht reproduzieren. Auch das Beenden per ESC des Frontend verursacht den Fehler nicht. Ich glaube daher weiter hin, dass der Treiber keine bzw. nur eine Teilschuld hat. Wir sollten daher den Fehler im Frontend suchen, da ich nicht glaube das Nvidia den Treiber so umbaut, das Programme die die Resourcen nicht sauber beenden / freigeben, vom Treiber aufgeräumt werden.

    mfg traxanos
    ____________________
    Ist das neu?, Nein Linux!


    VDR1: Zotac NM10-ITX Wifi - 2GB Ram - S2-6400 HD mit IR - yavdr 0.4 (development) - LianLi PC-Q11


    Tags: VDR-HD - AT5IONT-I - 4GB Ram - 512MB ION - TT 3600 DVB-S2 - TT6400-FF - Sundtek DVB-S2 Sundtek DVB-C - Tevii S480 (dank an L4M für kostenlose Bereitstellung) - yaVDR 0.5 (development) - SKY - HD+ - Atric - X10 FB - Zotac ID41 PLUS - SilverStone LC19B-R - Yamaha RX-V671 - Samsung 8Series 55"

  • Kleiner Nachtrag killt man den XBMC bei der video-Wiedergabe mit einem SIGKILL tritt der Fehler dennoch nicht auf. Dort wird scheinbar alles sauber beendet auch bei einem SIGKILL.


    sowie mal ein beispiel video wie sowas aussieht:
    http://marco-scholl.de/vdr/schnee.mov


    EDIT:
    Und das Bild welches die Overlay Farbe beinhaltet:
    http://marco-scholl.de/vdr/overlaycolor.png

    mfg traxanos
    ____________________
    Ist das neu?, Nein Linux!


    VDR1: Zotac NM10-ITX Wifi - 2GB Ram - S2-6400 HD mit IR - yavdr 0.4 (development) - LianLi PC-Q11


    Tags: VDR-HD - AT5IONT-I - 4GB Ram - 512MB ION - TT 3600 DVB-S2 - TT6400-FF - Sundtek DVB-S2 Sundtek DVB-C - Tevii S480 (dank an L4M für kostenlose Bereitstellung) - yaVDR 0.5 (development) - SKY - HD+ - Atric - X10 FB - Zotac ID41 PLUS - SilverStone LC19B-R - Yamaha RX-V671 - Samsung 8Series 55"

    2 Mal editiert, zuletzt von traxanos ()

  • Da das Ganze nun aus dem yavdr in das "VDR Grundlagen" Forum gewandert ist, würde ich vorschlagen die Beschreibung der Fehler/Symptome und sonstigen Details nicht yavdr (ubuntu) spezifisch zu halten.
    Tatsache ist, dass das Problem auf bei anderen Distri's auftritt und eine generelle Lösung wohl allen hilft.


    Meine Beobachtung dazu:
    Ich verwende fast identische Configs auf meinen ION vdr's und einem vdr von einem Freund mit G210, alles mit Gentoo. Den Schnee habe ich bei mir noch nie gesehen, er hatte ihn nach dem Treiberupdate auf 260.
    Mit den hier empfohlenen Workarounds (Ybr... und VSYNC) habe ich den Schnee in einem Fall bei ihm wegbekommen (Switchen zwischen xine-ui und Firefox), es bleibt aber dabei (also Schnee kommt weiterhin) wenn xine-ui abgestürzt ist (z.B. exzessives Spulen/Springen in HD-Filmen) und sich neu startet.

  • Zitat

    Original von Razorblade
    es bleibt aber dabei (also Schnee kommt weiterhin) wenn xine-ui abgestürzt ist (z.B. exzessives Spulen/Springen in HD-Filmen) und sich neu startet.


    Hm, das werden wir natürlich nicht abfangen können und in sofern ist es dann natürlich doch ein Treiber-Problem. Wenn man das overlay wenigstens nachträglich löschen könnte, aber es fehlt mir die Ahnung wie man das adressiert.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

    Einmal editiert, zuletzt von gda ()

  • Razorblade


    ich nutze nunmal yaVDRr als Basis. Wo findest du denn das ganze zu yaVDR spezifisch ich kann nichts dergleichen erkennen. höchstens upstart lastig.


    "es bleibt aber dabei (also Schnee kommt weiterhin) wenn xine-ui abgestürzt ist (z.B. exzessives Spulen/Springen in HD-Filmen) und sich neu startet. "


    hab doch geschrieben das wenn das frontend nicht sauber beendet wurde tritt der fehler aus.

    mfg traxanos
    ____________________
    Ist das neu?, Nein Linux!


    VDR1: Zotac NM10-ITX Wifi - 2GB Ram - S2-6400 HD mit IR - yavdr 0.4 (development) - LianLi PC-Q11


    Tags: VDR-HD - AT5IONT-I - 4GB Ram - 512MB ION - TT 3600 DVB-S2 - TT6400-FF - Sundtek DVB-S2 Sundtek DVB-C - Tevii S480 (dank an L4M für kostenlose Bereitstellung) - yaVDR 0.5 (development) - SKY - HD+ - Atric - X10 FB - Zotac ID41 PLUS - SilverStone LC19B-R - Yamaha RX-V671 - Samsung 8Series 55"

    2 Mal editiert, zuletzt von traxanos ()

  • Moin,


    bin zwar nicht direkt betroffen, aber trotzdem ...

    Zitat

    Originally posted by traxanos
    Was mich interessieren würde, gibt es eine Möglichkeit eine Art Listener auf eine PID zu setzten um zusehen welches Signal beim beenden wirklich beim Frontend ankommt.


    strace koennte IMHO Dein Freund sein, bin mir aber nicht sicher:

    Code
    strace -p <pid> -f


    Gruss


    /elle

  • Ich muss mich korrigieren. Vielleicht hat man beim Absturz doch eine Chance mit einem Signal-Handler die Verbindung zum Treiber sauber zu beenden. Womit stürzt er denn ab, mit einem Segfault?
    Gibt es bei XBMC keine Probleme weil es einen entsprechenden Signal-Handler gibt? Oder liegt es daran, dass XBMC wegen OpenGL sowieso ganz anders mit dem Treiber zusammenarbeitet? Oder ist nur die Wahrscheinlichkeit deutlich niedriger, weil XBMC die Verbindung zum Treiber immer nur bei Bedarf ganz kurz öffnet?


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zitat

    Original von elle
    strace koennte IMHO Dein Freund sein, bin mir aber nicht sicher:

    Code
    strace -p <pid> -f


    Ich halte das für sehr unwahrscheinlich, dass das hilft. Hier werden ja nur die Kernelzugriffe der Anwendung getraced. Ich glaube nicht, dass nach einem SIGKILL noch was von der Anwendung kommt, die ist dann einfach weg.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • gda


    das Frontend stürzt nicht hab, es wird sogar mit exit code 0 beendet. hatte deshalb schon nen fail event im upstart hinterlegt was entsprechend Meldung gibt.


    elle


    danke genau auf solch Beiträge hoffe ich :D werde es sofort testen.

    mfg traxanos
    ____________________
    Ist das neu?, Nein Linux!


    VDR1: Zotac NM10-ITX Wifi - 2GB Ram - S2-6400 HD mit IR - yavdr 0.4 (development) - LianLi PC-Q11


    Tags: VDR-HD - AT5IONT-I - 4GB Ram - 512MB ION - TT 3600 DVB-S2 - TT6400-FF - Sundtek DVB-S2 Sundtek DVB-C - Tevii S480 (dank an L4M für kostenlose Bereitstellung) - yaVDR 0.5 (development) - SKY - HD+ - Atric - X10 FB - Zotac ID41 PLUS - SilverStone LC19B-R - Yamaha RX-V671 - Samsung 8Series 55"

  • Zitat

    Original von traxanos
    das Frontend stürzt nicht hab, es wird sogar mit exit code 0 beendet. hatte deshalb schon nen fail event im upstart hinterlegt was entsprechend Meldung gibt.


    Ich habe Razorblade gemeint, bei ihm stürzt die Anwendung ab.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • gda achso :D


    so ich habe mal ein strace versucht. tatsächlich kann man sehen ob eine anwendung per sigkill getötet wurde.


    Code
    +++ killed by SIGKILL +++


    Habe dann direkt das ganze per Upstart getestet und konnte nicht feststellen, dass das frontend per sigkill beendet wurde.

    mfg traxanos
    ____________________
    Ist das neu?, Nein Linux!


    VDR1: Zotac NM10-ITX Wifi - 2GB Ram - S2-6400 HD mit IR - yavdr 0.4 (development) - LianLi PC-Q11


    Tags: VDR-HD - AT5IONT-I - 4GB Ram - 512MB ION - TT 3600 DVB-S2 - TT6400-FF - Sundtek DVB-S2 Sundtek DVB-C - Tevii S480 (dank an L4M für kostenlose Bereitstellung) - yaVDR 0.5 (development) - SKY - HD+ - Atric - X10 FB - Zotac ID41 PLUS - SilverStone LC19B-R - Yamaha RX-V671 - Samsung 8Series 55"

  • Aber sollte nicht das Signal zumindest noch auftauchen bevor die Anwendung sich beendet?


    Mompls - teste das mal - doch macht es:

    Code
    [pid 12001] +++ killed by SIGKILL +++
    PANIC: handle_group_exit: 12001 leader 12000
    +++ killed by SIGKILL +++


    Hatte gedit gestartet, dann ein strace wie beschrieben auf gedit und aus nem anderen Terminal getoetet ...


    Gruss


    /elle

  • Geht auch mit SIGTERM:

    Code
    [pid  7674] --- SIGTERM (Terminated) @ 0 (0) ---
    Process 7674 detached
    [pid  7675] +++ killed by SIGTERM +++


    Gruss


    /elle

  • korrekt elle. und bei stop vdr-frontend kommt auch ein


    Code
    2695  --- SIGTERM (Terminated) @ 0 (0) ---


    hier mal 2 traces (console mit crt-c und stop vdr-frontend) zum vergleich:


    http://marco-scholl.de/vdr/debug_stop.tar.bz2

    mfg traxanos
    ____________________
    Ist das neu?, Nein Linux!


    VDR1: Zotac NM10-ITX Wifi - 2GB Ram - S2-6400 HD mit IR - yavdr 0.4 (development) - LianLi PC-Q11


    Tags: VDR-HD - AT5IONT-I - 4GB Ram - 512MB ION - TT 3600 DVB-S2 - TT6400-FF - Sundtek DVB-S2 Sundtek DVB-C - Tevii S480 (dank an L4M für kostenlose Bereitstellung) - yaVDR 0.5 (development) - SKY - HD+ - Atric - X10 FB - Zotac ID41 PLUS - SilverStone LC19B-R - Yamaha RX-V671 - Samsung 8Series 55"

    3 Mal editiert, zuletzt von traxanos ()

  • mir war lediglich das hier zu distri-spezifisch:

    Code
    Wie wird das ganze ausgelöst:
    
    
    Aktuell lässt sich das ganze nur per Upstart auslösen oder per SIGKILL. Das heißt „stop vdr-frontend“ oder killall -9 vdr. Wer jetzt ankommt und sagt "bei mir passiert das auch wenn ich „restart vdr“ verwenden", dem reiß ich den Kopf ab, den ein „restart vdr“ löst auch nein stop vdr-frontend aus großes Grinsen .
    
    
    Erste Idee war das Upstart dann ein SIGKILL sendet und habe daher den kill timeout wert hoch gesetzt (sendet SIGKILL falls SIGTERM nicht reicht nach X Sekunden). Was aber leider zu keiner Behebung führte.


    wie gda schon erwähnt hat wird man einen Absturz (durch defekten Stream, was auch immer) nicht grundsätzlich verhindern können, so dass das "rumdoktern" am "sauberen Beenden" das Problem nur seltener auslöst, aber es besteht trotzdem weiterhin...

  • Zitat

    Original von traxanos
    Killt man den XBMC bei der video-Wiedergabe mit einem SIGKILL tritt der Fehler dennoch nicht auf. Dort wird scheinbar alles sauber beendet auch bei einem SIGKILL.


    die bekommen es auch ohne fehler hin. wielleicht liegt es ander der art der nutzung. ich weis es nicht ich kene mich mit xine & co nicht aus.


    Zitat

    Original von traxanos
    Das heißt „stop vdr-frontend“ oder killall -9 vdr.


    das killall als alternative sollte doch überall gehen oder? und auch die stop befehle sind upstart spezifisch und nicht yavdr.

    mfg traxanos
    ____________________
    Ist das neu?, Nein Linux!


    VDR1: Zotac NM10-ITX Wifi - 2GB Ram - S2-6400 HD mit IR - yavdr 0.4 (development) - LianLi PC-Q11


    Tags: VDR-HD - AT5IONT-I - 4GB Ram - 512MB ION - TT 3600 DVB-S2 - TT6400-FF - Sundtek DVB-S2 Sundtek DVB-C - Tevii S480 (dank an L4M für kostenlose Bereitstellung) - yaVDR 0.5 (development) - SKY - HD+ - Atric - X10 FB - Zotac ID41 PLUS - SilverStone LC19B-R - Yamaha RX-V671 - Samsung 8Series 55"

    2 Mal editiert, zuletzt von traxanos ()

Jetzt mitmachen!

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