Greenscreen in Verb. mit Multi-EPG

Wir haben aktuell ein Problem mit dem Board und arbeiten an der Lösung...

UPDATE: Das Problem scheint behoben, wir beobachten das noch :)
  • Hallo,

    ab und zu bekomme ich einen Greenscreen in Verbindung mit dem Multi-EPG.


    Wenn ich senderübergreifend recherchiere was z. B. um 20.15 Uhr läuft (Menü-Taste), dann etwas darin blättere und mit der OK-Taste mir die eine oder andere Sendung anzeigen lasse, dann kommen manchmal die Zahnrädchen in
    Verb. mit einem Greenscreen. Ende Juli bemerkte ich das zum ersten Mal.

    8000(ss), akt. iCVS, GP3, Skin dmm-HDr2 für gp3

    Anbei crashlog's vom Juli u. gestern Abend.

    Vielen Dank schon mal.

    Gruß

    DT

  • Hallo,


    gestern Abend wieder ein Greenscreen. Crashlog siehe im ersten Beitrag.


    Es kommt sehr oft zu einem Greenscreen wenn ich die Box morgens bereits einschalte (Standby), diese dann im Laufe des Tages aufnimmt bzw. wenn man dann abends nach einer weiteren Aufnahme, wie im ersten Beitrag beschrieben, im Multi-EPG recherchiert, kommen sehr oft die Zahnräder.


    Während einer Aufnahme den Multi-EPG zu nutzen ist fast Selbstmord.


    Bereits seit Juli stelle ich dieses Verhalten fest. Auch mit dem Imaga v. 06.09.11 hat sich nichts verändert ...


    Die epg.dat ist übrigens auf der CF ausgelagert. Keine Ahnung, ob das evtl. wichtig ist.


    Gruß


    DT

  • häng mal bitte die datei an.
    /usr/lib/enigma2/python/Components/GUISkin.py
    ich bau da was ein, das den fehler abfängt, das müsstest du dann mal testen.

    Hilfe gesucht ? schau mal ins Gemini Project WIKI, auch unsere Video Tutorials sind für den Einstieg sehr empfehlenswert


    Nur wer die Weisheit mit Löffeln gefressen hat, kann auch klugscheißen. :klugscheiss:
    Alte asiatische Weisheit (wahrscheinlich Plagiat): Ohne Fleiß kein Scheiß. (Ich übernehme keine Garantie für Fehlerfreiheit der Übersetzung)
    "Alle großen Männer sind bescheiden." Gotthold Ephraim Lessing
    "Ich bin nur einsvierundsechzig"adenin
    "Es reicht nicht, Sachen falsch zu verstehen. Man muss sie richtig falsch verstehen."adenin
    "Friends: You Have 0 Friends"facebook

  • Zitat

    Original von adenin
    häng mal bitte die datei an.
    /usr/lib/enigma2/python/Components/GUISkin.py
    ich bau da was ein, das den fehler abfängt, das müsstest du dann mal testen.


    Hallo,


    habe erst eben wieder hier nachgesehen. Sorry. Anbei die gewünschte Datei.


    Vielen Dank schon mal.


    Gruß


    DT

  • Hier ist die modifizierte Version.
    Probiere mal bitte, was damit passiert.


    edit: Also Du musst die Datei auf der Dreambox durch diese Version ersetzen und dann Enigma2 neu starten.

    Dateien

    Hilfe gesucht ? schau mal ins Gemini Project WIKI, auch unsere Video Tutorials sind für den Einstieg sehr empfehlenswert


    Nur wer die Weisheit mit Löffeln gefressen hat, kann auch klugscheißen. :klugscheiss:
    Alte asiatische Weisheit (wahrscheinlich Plagiat): Ohne Fleiß kein Scheiß. (Ich übernehme keine Garantie für Fehlerfreiheit der Übersetzung)
    "Alle großen Männer sind bescheiden." Gotthold Ephraim Lessing
    "Ich bin nur einsvierundsechzig"adenin
    "Es reicht nicht, Sachen falsch zu verstehen. Man muss sie richtig falsch verstehen."adenin
    "Friends: You Have 0 Friends"facebook

  • Hallo,


    ich habe heute Abend (24.10.2011) mal den Multi-EPG intensiv genutzt. Mit der neuen Datei hatte ich bisher keinen Greenscreen.


    Dann wollte ich das Image mit dem GP3 Settings Manager sichern. Dort "Image sichern" gewählt und dann kommt ein Greenscreen. Leider reproduzierbar. Wobei der Fehler wohl mit dem letzten Update kam. Ich habe nämlich mal das letzte Image ausprobiert. Da ging das Sichern. Nach dem Update geht es nicht mehr. Wohl eine andere Geschichte bzw. habe das mal im entspr. Bereich angesprochen.


    Teste die mod. GUISkin.py weiter ...


    Gruß


    DT

  • Ich klinke mich hier mal ein:
    Also bei mir scheint Deine Korrektur auch zu funktionieren!
    Es ist ja offenbar nur eine If-Abfrage, die nun nicht mehr ins Leere laeuft - eine recht banale Korrektur fuer einen Fehler, der schon seit zwei Jahren durch das IHAD Forum geistert :)



    67,69c67,68
    < if hasattr(self, 'instance'):
    < if self.instance:
    < self.instance.setTitle(title)
    ---
    > if self.instance:
    > self.instance.setTitle(title


    Das sollte aber dringend mal ins CVS einfliessen!
    Tausend Dank!!
    Gruss,
    Chris

  • Naja, es muss sich ja erstmal einer finden, der sich der Sache annimmt. :)


    Es gibt noch mehr solche Stellen im Sourcecode.
    Die Frage hier ist, warum ist das Attribut 'instance' nicht vorhanden?
    Ist es ein Fehler vom MultiEPG her?
    Oder ist es normal, weil zB. keine Daten vorliegen?
    Wenn letzteres der Fall ist, dann ist die Abfrage hasattr natürlich zwingend notwendig (möglicherweise an anderen Stellen, die ähnlich aufgebaut sind, auch).

    Hilfe gesucht ? schau mal ins Gemini Project WIKI, auch unsere Video Tutorials sind für den Einstieg sehr empfehlenswert


    Nur wer die Weisheit mit Löffeln gefressen hat, kann auch klugscheißen. :klugscheiss:
    Alte asiatische Weisheit (wahrscheinlich Plagiat): Ohne Fleiß kein Scheiß. (Ich übernehme keine Garantie für Fehlerfreiheit der Übersetzung)
    "Alle großen Männer sind bescheiden." Gotthold Ephraim Lessing
    "Ich bin nur einsvierundsechzig"adenin
    "Es reicht nicht, Sachen falsch zu verstehen. Man muss sie richtig falsch verstehen."adenin
    "Friends: You Have 0 Friends"facebook

  • Hab gerade mal in den Logfile geschaut:


    Traceback (most recent call last):
    File "/usr/lib/enigma2/python/Navigation.py", line 43, in dispatchEvent
    x(i)
    File "/usr/lib/enigma2/python/Components/ServiceEventTracker.py", line 38, in event
    func[2]()
    File "/usr/lib/enigma2/python/Screens/InfoBarGenerics.py", line 660, in __evEventInfoChanged
    self.eventView.setEvent(self.epglist[0])
    File "/usr/lib/enigma2/python/Screens/EventView.py", line 147, in setEvent
    self.setTitle(event.getEventName())
    File "/usr/lib/enigma2/python/Components/GUISkin.py", line 67, in setTitle
    if self.instance:
    AttributeError: 'EventViewEPGSelect' object has no attribute 'instance'
    (PyObject_CallObject(<bound method Navigation.dispatchEvent of <Navigation.Navigation instance at 0x14a9a08>>,(4,)) failed)


    Das ist ja eigentlich MEHR als zielfuehrend.
    Also wird SetTitle nun nicht aufgerufen, wenn das Attribute instance nicht vorhanden ist.
    Allerdings wird es doch ohnehin nur aufgerufen, wenn das Attribut instance irgendeinen Wert enthaelt (?) - (if self.instance, oder was macht diese Abfrage?).
    Wenn es nicht vorhanden ist crasht die if-Abfrage.
    Offenbar verwendet Python fuer diese Art Abfragen hasattr., und daher ist dies offensichtlich ein Fehler im Code und ich nehme an das schon die Aenderung von "if self.instance" in "if hasattr(self, 'instance')" ausreicht, da self.instance im jetzigen Quelltext mit den beiden if-Abfragen immer True ergeben wird (oder)?

  • Zitat

    Original von inte
    Offenbar verwendet Python fuer diese Art Abfragen hasattr., und daher ist dies offensichtlich ein Fehler im Code und ich nehme an das schon die Aenderung von "if self.instance" in "if hasattr(self, 'instance')" ausreicht, da self.instance im jetzigen Quelltext mit den beiden if-Abfragen immer True ergeben wird (oder)?


    Das ist so nicht Korrekt.
    "hasattr(self, 'instance')" fragt, ob ein bestimmtes Attribut namens "instance" existiert.
    "if self.instance" fragt, ob dem Attribut self.instance ein Wert zugewiesen wurde, der
    1. keine leerer String ist
    2. nicht dem numerischen Wert 0 entspricht
    3. nicht dem Type none entspricht
    4. nicht den boolean Wert false hat
    Nur dann liefert es true.

    Hilfe gesucht ? schau mal ins Gemini Project WIKI, auch unsere Video Tutorials sind für den Einstieg sehr empfehlenswert


    Nur wer die Weisheit mit Löffeln gefressen hat, kann auch klugscheißen. :klugscheiss:
    Alte asiatische Weisheit (wahrscheinlich Plagiat): Ohne Fleiß kein Scheiß. (Ich übernehme keine Garantie für Fehlerfreiheit der Übersetzung)
    "Alle großen Männer sind bescheiden." Gotthold Ephraim Lessing
    "Ich bin nur einsvierundsechzig"adenin
    "Es reicht nicht, Sachen falsch zu verstehen. Man muss sie richtig falsch verstehen."adenin
    "Friends: You Have 0 Friends"facebook

  • Ja, so weit hatte ich das schon verstanden - nur nicht vernuenftig beschrieben :)
    Kann denn eine Situation eintreten, in der Instance vorhanden ist, aber keinen Wert zugewiesen bekommen hat?
    Wie dem auch sei, eine if-Abfrage mehr oder weniger tut ja auch nicht weh.
    Pflegst Du das in das CVS ein oder wie geht das nun weiter? Nicht dass man nach dem naechsten Flash erneut das Skript haendisch flicken muss...

  • Hallo,


    nach einer Woche kann ich sagen, dass es funktioniert. Ich nutzte den Multi-EPG intensiv bzw. übertrieben und hatte keinen einzigen Greenscreen. mehr.


    Ist die "GUISkin.py" ein Teil des Images? Wenn ja und es kein neues iCVS mehr geben wird bzw. man das Experimental nimmt ist das Problem eigentlich wieder da, oder?


    Gruß


    DT

  • Super!


    Habs mal ins DMM-Forum gepostet mit der Bitte um Aufnahme ins offizielle GIT:


    http://www.dream-multimedia-tv…&postID=105059#post105059


    (bzw. ich habs auch gerade mal als Patch comitted - keine Ahnung ob das nun irgendwie hier erkennbar sein muesste - ist es naemlich nicht.
    Fehlermeldung beim commit gab es allerdings auch nicht.
    Keine Ahnung, kennt sich hier irgendjemand mit dem Git aus?)

  • Kurze Frage, ich habe meine 8000er erst seit letzter Woche und bitte um Nachsicht :)



    Wenn ich die Änderung in der GUISkin.py Datei vornehme und die Box neu starte, bootet mein 8000er nicht mehr durch, sondern hängt.


    Der Screen zeigt "Loading..." an und das LCD Display flasht mehrmals bevor es dann dunkel wird.



    Wenn ich mich dann via Telnet einlogge und die Änderung rückgängig mache, bootet die Box auch wieder durch.


    Jetzt habe ich gesehen, daß in dem Verzeichnis auch *.pyo Files liegen.
    Muss die py-Datei nach der Änderung noch kompiliert werden ? Wenn ja, wie genau ?

  • Schau mal diese Seite:
    http://wiki.python.org/moin/HowToEditPythonCode


    Python ist im Coding etwas...eigen. Vll. hast Du die Aenderungen nicht korrekt durchgefuehrt.


    C.


    Sollte in etwa so aussehen, wenns fertig ist.

    Code
    def setTitle(self, title):                 
               if hasattr(self, 'instance'):                         
                         if self.instance:                                 
                                 self.instance.setTitle(title)                 
               self["Title"].text = title                 
               self.summaries.setTitle(title)


    (Code laesst sich in HTML Foren haeufig nicht so einfach abbilden)

  • Das scheint immer noch nicht ganz gefixt zu sein,
    eben stürzte er beim Verlassen des EPGs mit der roten Taste und Exit mit diesem Fehler ab.


    Code
    File "/usr/lib/enigma2/python/Navigation.py", line 43, in dispatchEvent     x(i)
    File "/usr/lib/enigma2/python/Components/ServiceEventTracker.py", line 38, in event     func[2]()
    File "/usr/lib/enigma2/python/Screens/InfoBarGenerics.py", line 681, in __evEventInfoChanged self.eventView.setEvent(self.epglist[0])
    File "/usr/lib/enigma2/python/Screens/EventView.py", line 147, in setEvent     self.setTitle(event.getEventName())
    File "/usr/lib/enigma2/python/Components/GUISkin.py", line 70, in setTitle     self["Title"].text = title
    KeyError: 'Title'
    (PyObject_CallObject(<bound method Navigation.dispatchEvent of <Navigation.Navigation instance at 0x1189990>>,(4,)) failed) [EPGC] start caching events(1320346371) ]]>
  • Zitat

    Original von jd0001
    Wenn ich die Änderung in der GUISkin.py Datei vornehme und die Box neu starte, bootet mein 8000er nicht mehr durch, sondern hängt.


    Hallo,


    warum hast Du es nicht so gemacht wie adenin es geschrieben hat?


    Zitat

    Original von adenin
    Hier ist die modifizierte Version.
    Probiere mal bitte, was damit passiert.


    edit: Also Du musst die Datei auf der Dreambox durch diese Version ersetzen und dann Enigma2 neu starten.


    Funktioniert doch prima.


    Gruß


    DT

  • Zitat

    Originally posted by jd0001
    Das scheint immer noch nicht ganz gefixt zu sein,
    eben stürzte er beim Verlassen des EPGs mit der roten Taste und Exit mit diesem Fehler ab.


    Code
    File "/usr/lib/enigma2/python/Navigation.py", line 43, in dispatchEvent     x(i)
    File "/usr/lib/enigma2/python/Components/ServiceEventTracker.py", line 38, in event     func[2]()
    File "/usr/lib/enigma2/python/Screens/InfoBarGenerics.py", line 681, in __evEventInfoChanged self.eventView.setEvent(self.epglist[0])
    File "/usr/lib/enigma2/python/Screens/EventView.py", line 147, in setEvent     self.setTitle(event.getEventName())
    File "/usr/lib/enigma2/python/Components/GUISkin.py", line 70, in setTitle     self["Title"].text = title
    KeyError: 'Title'
    (PyObject_CallObject(<bound method Navigation.dispatchEvent of <Navigation.Navigation instance at 0x1189990>>,(4,)) failed) [EPGC] start caching events(1320346371) ]]>


    Moin,
    ich kann Deinen Fehler nicht wirklich nachvollziehen.
    Ich habe gerade mal folgende Aenderung vorgenommen:

    Code
    def setTitle(self, title):                 
    if hasattr(self, 'instance'): 
             if self.instance:  
                     self.instance.setTitle(title)                 
    if title != None:                                          
             self["Title"].text = title                         
             self.summaries.setTitle(title)


    Ich weiss nicht ob das den Fehler behebt, aber es macht ihn zumindest auch nicht schlimmer :)
    Ich hatte gerade versucht, mit has_key zu ueberpruefen, ob "Title" ueberhaupt vorhanden ist - dies fuert aber auch zum Crash:

    Code
    File "/usr/lib/enigma2/python/Components/GUISkin.py", line 70, in setTitle     if self.has_key("Title"): KeyError: 'Title'


    Ich bin aber auch wirklich kein Python-Experte, vielleicht hat hier ja jemand eine Idee, werde es aber auch mal an die enigma2-devel-Liste schicken.

  • Hi,


    ich wärme mal alte Kamellen auf, da es mir selbst immer den Greenscreen um die Ohren gehauen hat. Ausgelöst wird dieser, wenn man Multi-EPG geöffnet und ein spezielles Zeitfenster z.B. 20:15Uhr (Menü-Taste -> Zeit einstellen -> grüne Taste) ausgewählt hat. Findet wärenddessen ein Sendungswechsel auf dem im Hintergrund laufenden Fernsehsender statt, löst es eine Exception aus und es folgt der Greenscreen.


    Der Lösungsvorschlag von adenin reichte leider noch nicht ganz aus, zumindest kam bei mir immernoch die Fehlermeldung wie von jd0001 beschrieben. Dank ihm war ja die Baustelle bekannt und ich habe die Zeilen in der 'GUISkin.py' wie folgt ergänzt:


    Code
    def setTitle(self, title):
                    if hasattr(self, 'instance'):
                            if self.instance:
                                    self.instance.setTitle(title)
                    if self.get("Title") != None:
                            self["Title"].text = title
                    if hasattr(self, 'summaries'):
                            self.summaries.setTitle(title)


    Ich kenne mich in Python nicht aus, von daher kann es sein, dass es eine schickere Lösung gibt - aber so funktioniert es bisher anstandslos. :winking_face:


    Sledge