sectionsd doppelte Events fixen - wie?
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
Re: sectionsd doppelte Events fixen - wie?
Tja, gerade kamen doppelte Events auf ProSieben rein. Naja, 'n Versuch war's wert...
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: sectionsd doppelte Events fixen - wie?
Lese da Thema hier gerne. Da ich zwar etwas programieren kann (jemand der es wohl richtig kann würde das zwar einschränken) finde ich das hier doch recht Informativ.
Um das Problem richtig anzgehen Frage ich mich folgendes was aber als Anregung dienen soll falls es verwirklichbar ist. Mir scheint das der Fix hier so ein bischen in Richtung mit der heissen Nadel gestrickt ist.
Warum geht man (was natürlich deutlich Aufwändiger ist) nicht so an die Sache ran.
Ausgangspunkt ist das der code nicht richtig gestept werden kann mangesl GDB. Wäre es nicht eine option die EPG Daten bzw den Datenstrom zu streamen also genau das was der SectionsD bekommt und dann den Code der den ganzen Mist produziert auf einem PC mit einem sagen wir mal kompfortableren IDE durchlaufen zu lassen. Das Problem ist ja GUI unabhängig und so könnte man den Fehler reproduzierbar tracen.
Ich sage das nur weil ich wenn ich Fehler suche manchmal am verzweifeln bin und man teilweise mit Debugausgaben auf der Konsole es sauschwer hat. Gut Ich gebe es zu es ist mit Kanoonen geschossen aber aus dem Spatz ist ja auch ein Dino geworden.
Ich habe das mal so gemacht um einen Fehler in einem MP3 Player auf der Triple Dragon zu lokalisieren and das ging damit recht gut (ohne GUI des MP3 Players)
Ist nur ein Vorschlag.
Gruss Martin
Um das Problem richtig anzgehen Frage ich mich folgendes was aber als Anregung dienen soll falls es verwirklichbar ist. Mir scheint das der Fix hier so ein bischen in Richtung mit der heissen Nadel gestrickt ist.
Warum geht man (was natürlich deutlich Aufwändiger ist) nicht so an die Sache ran.
Ausgangspunkt ist das der code nicht richtig gestept werden kann mangesl GDB. Wäre es nicht eine option die EPG Daten bzw den Datenstrom zu streamen also genau das was der SectionsD bekommt und dann den Code der den ganzen Mist produziert auf einem PC mit einem sagen wir mal kompfortableren IDE durchlaufen zu lassen. Das Problem ist ja GUI unabhängig und so könnte man den Fehler reproduzierbar tracen.
Ich sage das nur weil ich wenn ich Fehler suche manchmal am verzweifeln bin und man teilweise mit Debugausgaben auf der Konsole es sauschwer hat. Gut Ich gebe es zu es ist mit Kanoonen geschossen aber aus dem Spatz ist ja auch ein Dino geworden.
Ich habe das mal so gemacht um einen Fehler in einem MP3 Player auf der Triple Dragon zu lokalisieren and das ging damit recht gut (ohne GUI des MP3 Players)
Ist nur ein Vorschlag.
Gruss Martin
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
Re: sectionsd doppelte Events fixen - wie?
Das Hauptproblem ist ja, dass es eigentlich nur einen gibt, er da wirklich durchblickt. Und der hat leider keine Zeit. (Wer kennt das nicht...)
Naja, und der Rest, der es evtl. fixen könnte hat wohl leider kein Interesse mehr daran... Viele Namen fallen mir in dem Zusammenhang aber eh nicht ein...
Ich kann's jedenfalls momentan leider nicht (das spezielle know-how zu der Thematik & die Zeit zum tieferen Eintauchen fehlt). Von daher stehen wir da ein wenig im Regen... Leider... Das alte Spiel eben...
Naja, und der Rest, der es evtl. fixen könnte hat wohl leider kein Interesse mehr daran... Viele Namen fallen mir in dem Zusammenhang aber eh nicht ein...
Ich kann's jedenfalls momentan leider nicht (das spezielle know-how zu der Thematik & die Zeit zum tieferen Eintauchen fehlt). Von daher stehen wir da ein wenig im Regen... Leider... Das alte Spiel eben...
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: sectionsd doppelte Events fixen - wie?
Deswegen mein Vorschlag. Dadurch wird man von der IDE durch den code gelotst und das erleichtert den Durchblick ungemein. Man sieht dann gleich wo der Mist herkommt und wo er hingeht. Und kann Haltepunkte setzten variablen überprüfen sieht genau ob das gemacht wird was man will oder nicht.
Martin
Martin
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: sectionsd doppelte Events fixen - wie?
Wenn man den Weg (ungefähr) weis, heisst es noch lange nicht das man das Ziel findet
Das wäre eine Nummer zu gross, habe ja nicht mal geschafft mir einen U-Boot zu bauen um von Platte zu booten. AlexW hat das mal gemacht und es war sauuuuuuuuuuuuuuuuu schnell. (Angeblich). Aber der wurde ja vergrault. Manchmal ist es besser mit den Fehlern (auch von Menschen) zu Leben als wie ein Presser hinzustehen und zu sagen .......
Das bla bla kann sich jeder denken.
Martin
Das wäre eine Nummer zu gross, habe ja nicht mal geschafft mir einen U-Boot zu bauen um von Platte zu booten. AlexW hat das mal gemacht und es war sauuuuuuuuuuuuuuuuu schnell. (Angeblich). Aber der wurde ja vergrault. Manchmal ist es besser mit den Fehlern (auch von Menschen) zu Leben als wie ein Presser hinzustehen und zu sagen .......
Das bla bla kann sich jeder denken.
Martin
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
Re: sectionsd doppelte Events fixen - wie?
Okay, schade. Hörte sich so an, als wenn Du das relativ fix aufbauen könntest, weil Du's ja schon mal ähnlich gemacht hattest.
Du weißt ja: Die Hoffnung stirbt zuletzt... Deshalb versuche ich, jeden Strohhalm zu greifen, der hier so rumliegt. Vergraulen ist das Letzte, was das Projekt braucht...
Du weißt ja: Die Hoffnung stirbt zuletzt... Deshalb versuche ich, jeden Strohhalm zu greifen, der hier so rumliegt. Vergraulen ist das Letzte, was das Projekt braucht...
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: sectionsd doppelte Events fixen - wie?
Ich hab da mal wieder was zum Probieren. Auch bei mir ist das alles nur intuitiv. Aber Schaden kann es ja nicht. Vor dem Aufruf von "removeOldEvents" wird "unlockEvents();" und danach "readLockEvents();" gemacht. Vielleicht sollten wir diese Aufrufe auch um "deleteEventsFromTableSection" herumbauen.
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
Re: sectionsd doppelte Events fixen - wie?
daran sollte es nicht scheitern, auf der Box 'nen gdbserver und auf dem PC den powerpc crossgdb (auch mit Guiaufsatz).auf einem PC mit einem sagen wir mal kompfortableren IDE durchlaufen zu lassen
Leider is das multithreading debugging an sich schon nicht so einfach.
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
Re: sectionsd doppelte Events fixen - wie?
Hrmmm... Meinem Verständnis nach sind die Locks dazu da, dass während der kritischen Operationen nicht von extern (sprich: Neutrino) auf die Daten zugegriffen werden kann. Von daher wüsste ich nicht, was das in diesem Fall bringen sollte. Die Locks haben ja eigentlich "nur" geholfen, dass der sectionsd nicht festfriert, sollten also nichts mit dem eigentlichen Löschen der Daten zu tun haben. Aber naja, ein Versuch schadet natürlich nicht... Ich kann's ja mal testen... Allerdings locken wir ja jetzt schon in der Routine selbst wie die Weltmeister...Gaucho316 hat geschrieben:Ich hab da mal wieder was zum Probieren. Auch bei mir ist das alles nur intuitiv. Aber Schaden kann es ja nicht. Vor dem Aufruf von "removeOldEvents" wird "unlockEvents();" und danach "readLockEvents();" gemacht. Vielleicht sollten wir diese Aufrufe auch um "deleteEventsFromTableSection" herumbauen.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: sectionsd doppelte Events fixen - wie?
Ich weiß. Ist ja auch nur ein Strohhalm. Mir fällt sonst nämlich nichts ein, warum es nicht geht. Gedanklich kann ich unsere Codezeilen wunderbar nachvollziehen. Keine Ahnung, wo es hakt.
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
Re: sectionsd doppelte Events fixen - wie?
Ich hab gerade noch mal reingeschaut, in deleteEventsFromTableSection fangen wir schon direkt mit readLockEvents an und hören mit unlockEvents auf. Würde also wirklich keinen Sinn machen, den Aufruf von deleteEventsFromTableSection mit readLockEvents einzuleiten und mit unlockEvents zu beenden. Wie gesagt, genau das machen wir ja schon. Würde also meiner Meinung nach gar nichts bringen.
Allerdings wird überall, wo Routinen aufgerufen werden, die ebenfalls "unsere" Locksachen enthalten, genau das gemacht, was Du beschreibst. Wobei das natürlich nichts heißen muss, vielleicht sind die ja überflüssig und das sind z.B. Reliquien?
Ich hab's trotzdem jetzt mal bei mir eingebaut, mal schauen, was draus wird. Ich zweifel ja immer noch dran, dass es was bringt, weil das Problem ja meiner Meinung nach noch im Algo selbst liegt, nicht an dem Gelocke (geiles Wort). Wir dürfen ja auch nicht vergessen, dass Nirvana das fix ohne Test runtergeschrieben hat. Er sagt ja selbst, dass es evtl. sein könnte, dass es nix bringt. Ich melde mich dann hier wieder, sobald mir der erste Multi-Event über den Weg läuft.
Helfen würde es, wenn jemand, der einen ungepatchten sectionsd benutzt, bestätigt, dass ProSieben sich z.B. ab heute immer noch nicht benimmt. Seit gestern morgen hatte ich hier nämlich keine Probleme mehr.
Allerdings wird überall, wo Routinen aufgerufen werden, die ebenfalls "unsere" Locksachen enthalten, genau das gemacht, was Du beschreibst. Wobei das natürlich nichts heißen muss, vielleicht sind die ja überflüssig und das sind z.B. Reliquien?
Ich hab's trotzdem jetzt mal bei mir eingebaut, mal schauen, was draus wird. Ich zweifel ja immer noch dran, dass es was bringt, weil das Problem ja meiner Meinung nach noch im Algo selbst liegt, nicht an dem Gelocke (geiles Wort). Wir dürfen ja auch nicht vergessen, dass Nirvana das fix ohne Test runtergeschrieben hat. Er sagt ja selbst, dass es evtl. sein könnte, dass es nix bringt. Ich melde mich dann hier wieder, sobald mir der erste Multi-Event über den Weg läuft.
Helfen würde es, wenn jemand, der einen ungepatchten sectionsd benutzt, bestätigt, dass ProSieben sich z.B. ab heute immer noch nicht benimmt. Seit gestern morgen hatte ich hier nämlich keine Probleme mehr.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: sectionsd doppelte Events fixen - wie?
Ich habe im Moment wieder den ungepatchten sectionsd laufen. Deine letzte Variante ist mir nämlich nach einiger Laufzeit leider auch abgestürzt. Ich habe gerade frisch auf ProSieben geschaltet und schaue dann später nochmal dort vorbei. Mal sehen ...
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
Re: sectionsd doppelte Events fixen - wie?
Echt? Seltsam, hier läuft's die ganze Zeit stabil, also genau so "stabil" wie ungepatcht...
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: sectionsd doppelte Events fixen - wie?
Jetzt habe ich wieder auf ProSieben geschaltet. Es sind einige doppelte EPG-Einträge vorhanden. Es handelt sich im Moment um alle Einträge zwischen 23:05 (Focus TV) und 05:24 (Get Real - Von Mann zu Mann).
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
Re: sectionsd doppelte Events fixen - wie?
Also, mit den zusätzlichen Locks hängt sich der sectionsd nach 'ner Zeit komplett weg (bspw. gerade jetzt nach dem Aufstehen). Das ist nun reproduzierbar zum dritten Mal in Folge passiert, also nehme ich Deinen letzten Vorschlag wieder raus. Wenn Du sagst, Du hattest gestern abend Multi-Events, dann scheint mit der letzte Patch, den ich veröffentlicht habe, doch etwas zu bringen. Ich hatte nämlich keine. Müssen wir noch mal beobachten, ob's nicht nur Zufall war. Du kannst ja, sobald Du wieder welche erblickst, Bescheid sagen. Wenn ich dann bsp. beim dritten Mal trotzdem keine habe, würde ich mal pauschal behaupten, dass der Patch schon eine gewisse Besserung bringt...
Für Leute, die probieren wollen: Am Besten mit dem Diff den sectionsd selbst in ein Image einbauen, irgendwie neigt die ungestrippte Version, die ich hochgeladen hatte, leicht zum Abstürzen. Gaucho, hattest Du mein Binary oder mein Diff ausprobiert? Falls Du das Binary probiert hattest, würde Dein Bericht, dass das Ding crashed, dazu passen. Ich nehme das Binary erstmal wieder vom Upload runter. Baut das also bitte selbst mit dem normalen Build-Prozess in ein Image ein (also vergesst das Binary), so scheint's stabiler zu laufen... Warum auch immer...
Für Leute, die probieren wollen: Am Besten mit dem Diff den sectionsd selbst in ein Image einbauen, irgendwie neigt die ungestrippte Version, die ich hochgeladen hatte, leicht zum Abstürzen. Gaucho, hattest Du mein Binary oder mein Diff ausprobiert? Falls Du das Binary probiert hattest, würde Dein Bericht, dass das Ding crashed, dazu passen. Ich nehme das Binary erstmal wieder vom Upload runter. Baut das also bitte selbst mit dem normalen Build-Prozess in ein Image ein (also vergesst das Binary), so scheint's stabiler zu laufen... Warum auch immer...
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: sectionsd doppelte Events fixen - wie?
Ich hatte dein Binary zusammen mit dem JtG-Image ausprobiert, da ich nichts installiert habe, um selbst entsprechende Programme zu erstellen.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: sectionsd doppelte Events fixen - wie?
Jetzt habe ich wieder so einige doppelte Einträge wie beispielsweise "Mean Machine - Die Kampfmaschine" (00:25) inklusive Wiederholung (03:49) und "Lost Heaven" (02:09). Auch die Wiederholung von "Schlag den Raab" ist einmal für 09:18 und einmal für 09:32 angesetzt.
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
Re: sectionsd doppelte Events fixen - wie?
Ich hab nur "Mean Machine - Die Kampfmaschine" (00:25) doppelt drin... Gepatchter sectionsd. Die Frage ist nun, ist das Zufall oder bringt der Code wirklich was? Kann ich überhaupt nicht einschätzen.
Eigentlich können wir nur warten, bis Nirvana aus dem Urlaub zurück ist und hoffentlich ein wenig Zeit übrig hat, um das Problem wahrscheinlich mit einem Handstreich zu beheben.
(Der lacht sich bestimmt kaputt über unsere seltsamen Versuche... )
Eigentlich können wir nur warten, bis Nirvana aus dem Urlaub zurück ist und hoffentlich ein wenig Zeit übrig hat, um das Problem wahrscheinlich mit einem Handstreich zu beheben.
(Der lacht sich bestimmt kaputt über unsere seltsamen Versuche... )
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: sectionsd doppelte Events fixen - wie?
Na dann wollen wir mal hoffen, dass er nicht zu lange weg bleibt.
Ich habe mir mal EPG-Daten per dvbsnoop an zwei aufeinanderfolgenden Tagen zur selben Uhrzeit angesehen. Dabei habe ich festgestellt, dass in derselben Kombination aus Table_ID, Service_ID, Section_number, Transport_stream_ID und Original_network_ID vollkommen unterschiedliche Events gesendet werden. Es sind also nicht immer dieselben Events nur mit anderen Event_IDs unter der oben genannten Kombination zu finden sondern völlig andere. Vielleicht funktioniert unser Code ja tatsächlich wie gewollt und die doppelten Events kommen dadurch zustande, dass die oben genannte Kombination aus IDs nicht immer auftritt und deshalb die entsprechenden Events nicht gelöscht werden. Konntest du mir einigermaßen folgen?
Ich habe mir mal EPG-Daten per dvbsnoop an zwei aufeinanderfolgenden Tagen zur selben Uhrzeit angesehen. Dabei habe ich festgestellt, dass in derselben Kombination aus Table_ID, Service_ID, Section_number, Transport_stream_ID und Original_network_ID vollkommen unterschiedliche Events gesendet werden. Es sind also nicht immer dieselben Events nur mit anderen Event_IDs unter der oben genannten Kombination zu finden sondern völlig andere. Vielleicht funktioniert unser Code ja tatsächlich wie gewollt und die doppelten Events kommen dadurch zustande, dass die oben genannte Kombination aus IDs nicht immer auftritt und deshalb die entsprechenden Events nicht gelöscht werden. Konntest du mir einigermaßen folgen?
-
- Erleuchteter
- Beiträge: 600
- Registriert: Samstag 14. Oktober 2006, 10:53
Re: sectionsd doppelte Events fixen - wie?
Wie sieht denn so ein Datenvergleich bei z.B. ARD-Sendern aus? Kannst Du da auch mal 'ne Testreihe aufstellen? Evtl. ist das, was Du beobachtet hast, ja auch korrekt, weil's ja zwei unterschiedliche Tage sind? Keine Ahnung, wie die Numerierung der IDs bei dem Ganzen ist und ob bzw. wann das alles wieder beim Sender resettet wird.
Aber wenn das Problem wirklich von dem kommt, was Du beschreibst, kann ich daran leider nicht viel machen, da müsste wieder ein DVB-Tables/sectionsd-Versteher ran.
Aber wenn das Problem wirklich von dem kommt, was Du beschreibst, kann ich daran leider nicht viel machen, da müsste wieder ein DVB-Tables/sectionsd-Versteher ran.
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
Re: sectionsd doppelte Events fixen - wie?
Ich glaube, wir hatten damals im der eventlist was eingebaut um doppelte Events zu unterdrücken.
Wahrscheinlich hilfts, wenn man das zum testen wieder rausnimmt.
Mal schauen ob ich es finde...
Wahrscheinlich hilfts, wenn man das zum testen wieder rausnimmt.
Mal schauen ob ich es finde...
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: sectionsd doppelte Events fixen - wie?
Du meinst bestimmt diesen Teil aus der eventlist.cpp:
Code: Alles auswählen
// Houdini: dirty workaround for RTL double events, remove them
CChannelEventList::iterator e2;
for ( e=evtlist.begin(); e!=evtlist.end(); ++e )
{
e2 = e+1;
if ( e2!=evtlist.end() && (e->startTime == e2->startTime)) {
evtlist.erase(e2);
}
}
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: sectionsd doppelte Events fixen - wie?
So, ich habe gestern und heute Abend mal den EPG von ARD und Premiere per dvbsnoop mitgeschnitten. Die Events wandern in beiden EPGs munter von einer Kombination aus Table_ID und Section_number zur anderen, behalten dabei aber, wie schon bekannt, im Gegensatz zum ProSieben-EPG dieselbe Event_ID. Daraus schließe ich, dass meine obere Annahme mit der später nicht mehr auftretenden ID-Kombination stimmt. Dagegen kann mal aber wohl wirklich nichts tun. Aber immerhin scheint der Code die meisten Doppelevents zu verhindern. Das ist doch schon ein gewaltiger Fortschritt.