You are not logged in.

Dear visitor, welcome to Dreamboard. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Sunday, April 20th 2008, 4:14pm

LINE 147 descriptor not found in descriptor cache

FATAL error: 147 descriptor not found in descriptor cache ...:

Diese Meldung bekam ich gestern erstmals zu sehen. Nach dem betaetigen irgendeiner Taste wird die Box neu gestartet. Nur leider bleibt das Problem bestehen, die box wird unbenutzbar!

Es handelt sich um Zeile 147 in epgcache.cpp.

Also habe ich den epgcache manuell von der Platte geloescht.
Danach geht alles wieder bestens, aber ohne Netzwerk und PC waere die Sache sehr schwer geworden.

Zunaechst sollte die Fehlermeldung meiner Meinung nach das Wort "epgcache" enthalten. Und zweitens sollte der Cache vor dem reboot automatisch geloescht werden, wenn dieser Fehler (aus welchem Grund auch immer) aufgetreten ist.

2

Sunday, April 20th 2008, 7:35pm

der fehler tritt in den gespeicherten daten (epg.dat) auf und ist nicht in der epgcache.cpp zu finden.

der eFatal wird beim aufruf der funktion const eit_event_struct* eventData::get() const oder eventData::~eventData() (also dem destructor) geschmissen.

der fehler dürfte aber wohl eher mit fehlerhaften daten zu tun haben.

vielleicht solltest du mal noch deine image-version angeben.
Gruss
Dre

Boxen: DM 7000-S / DM 7020-Si / DM 7025-ST / DM800-C PVR HD / DM8000-SSTC DVD PVR HD / DM7020HD STC
Developer Project Merlin - we are OpenSource

3

Sunday, April 20th 2008, 9:03pm

Quoted

Originally posted by dre
der fehler tritt in den gespeicherten daten (epg.dat) auf und ist nicht in der epgcache.cpp zu finden.


Das kann schon sein, ich habe mir das noch nicht genauer angeschaut.
Ich habe leider die md5 Pruefsumme des epg.dat nicht ueberprueft, sondern die Datei gleich geloescht. Beim naechsten Mal werde ich sie aufheben.

Quoted


der eFatal wird beim aufruf der funktion const eit_event_struct* eventData::get() const oder eventData::~eventData() (also dem destructor) geschmissen.

der fehler dürfte aber wohl eher mit fehlerhaften daten zu tun haben.


Auch das mag durchaus sein. Da aber die Daten doch von aussen kommen sollte man sich keinesfalls auf irgendwelche Konsistenz verlassen (siehe letzten Oktober ;)).

Gerade bemerke ich, dass der md5-Check in epgcache.cpp ungeeignet ist, um etwaige Plattenfehler auszuschliessen, da das md5 erst durch ruecklesen der Datei bestimmt wird. Angenommen, es tritt beim Schreiben ein Fehler auf, die Datei kann aber ohne I/O error wieder gelesen werden, dann stimmt die md5 wunderbar, es kommen aber trotzdem fehlerhafte Daten an...

Ich bleibe dabei: wenn dieser fatale Fehler auftritt, sollte die epg.dat auf jeden Fall prophylaktisch geloescht werden. Sonst wird die Box ohne Netzwerkzugriff unbenutzbar.

Quoted

vielleicht solltest du mal noch deine image-version angeben.


CVS, Stand von Ende Dezember

4

Monday, April 21st 2008, 7:54pm

die frage ist mehr: was löste bei dir den fehler aus? löschen kann nicht die lösung sein. man sollte schon versuchen zu eruieren, was den fehler auslöst.
Gruss
Dre

Boxen: DM 7000-S / DM 7020-Si / DM 7025-ST / DM800-C PVR HD / DM8000-SSTC DVD PVR HD / DM7020HD STC
Developer Project Merlin - we are OpenSource

5

Thursday, August 19th 2010, 4:36pm

Jetzt endlich weiss ich, was den Fehler ausloest. Das Problem ist leicht reproduzierbar, wenn man die Festplatte mit einer Aufnahme vollkommen fuellt. Sodann kann die epg.dat nur noch erfolgreich geschrieben werden, wenn die Groesse der epg.dat abnimmt. Ist die epg.dat beim Auffuellen der Platte zufaellig schon relativ klein, dann schlaegt das schreiben der aktualisierten epg.dat spaeter fehl (es wird zu wenig geschrieben). Aus den von mir bereits erlaeuterten Gruenden wird die .md5 Pruefsumme trotzdem "valide" erstellt und beim naechsten Start kommt der fatale Fehler.

Es gibt einen kruden Test im Quellcode, ob noch genuegend Platz auf der Platte ist. Dieser funktioniert offensichtlich nicht und das kann ich leider nicht erklaeren. Aber ich wuerde trotzdem dafuer plaedieren, den angehaengten patch anzuwenden damit das Szenario wie oben beschrieben nicht passieren kann.
voip2006 has attached the following file:

6

Friday, August 20th 2010, 6:43pm

Es gibt einen kruden Test im Quellcode, ob noch genuegend Platz auf der Platte ist. Dieser funktioniert offensichtlich nicht und das kann ich leider nicht erklaeren.



ich habe den Patch auf der dbox2 angewandt, zumindest sind die lästigen reboots jetzt weg, die Funktionlität kann ich aber nicht prüfen da ich keine HD in meiner dbox2 habe, im Code ist die Abfrage bei weniger als 50 MB die Datei gar nicht anzulegen, im /tmp (RAM) geht schonmal gar nicht (etwa 10 MB frei), habe es dann versucht über nfs, da habe ich 80 GB frei, die Datei wird trotzdem nicht angelegt, bin da überfragt, der Patch bleibt aber bei mir, da ich keine reboots mehr habe fals man die Option in EPG Settings aktiviert



mrvica



edit: sorry, die Datei epg.dat wurde doch auf dem nfs Laufwerk angelegt, zwar nicht gleich, deswegen konnte ich sie nicht gleich erkennen, auch die Datei epg.dat.md5 war da, könnte dann doch alles in Ordnung sein, würde sagen, ins CVS einfliessen lassen

This post has been edited 1 times, last edit by "mr_vica" (Aug 21st 2010, 11:13am)


7

Saturday, August 21st 2010, 8:13pm

Okay, ist im CVS, danke für den patch :)

dbluelle