Sectionsd Problem

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

tcf4004 hat geschrieben:Also zumindest auf BibelTV und Bloomberg Germany tritt nun wieder Variante 1 auf (nix geht mehr, nur hart rebooten).

...

Das mit dem "sequentiellen" Locken/Mutex klingt gut, evtl. ist es dann ein bissl langsamer, aber das macht überhaupt nix,
Hauptsache stable. Ich hab leider nicht wirklich Ahnung von der Materie.
Dummerweise hilft das in deinem Fall vermutlich genau garnicht.
AudioSlyer
Erleuchteter
Erleuchteter
Beiträge: 450
Registriert: Sonntag 28. Juli 2002, 01:18

Re: Sectionsd Problem

Beitrag von AudioSlyer »

@seife:
Ich hab das FastZap bei meinen Dreams deaktiviert, dann funktioniert auch der infoviewer.cpp ;o)
RTL Crime und die anderen Sender laufen nun.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

AudioSlyer hat geschrieben:@seife:
Ich hab das FastZap bei meinen Dreams deaktiviert, dann funktioniert auch der infoviewer.cpp ;o)
RTL Crime und die anderen Sender laufen nun.
Ok, damit verändert sich das Timing, das erklärt das.
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Re: Sectionsd Problem

Beitrag von tcf4004 »

Hmm, blöde Frage, kann man dieses "FastZap" auch auf der dbox2 irgendwie abschalten oder ist das ne Dreambox-spezifische Funktion?

Oder kann man an irgendwelchen Timeouts (zB in infoviewer.cpp) drehen und so dem Fehler evtl. näher kommen?

Wie gesagt, ich teste gerne was (wenn ich Zeit habe), man muss mir nur sagen wo & was ;)
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Re: Sectionsd Problem

Beitrag von tcf4004 »

Hab gerade mal etwas gesucht, hat sich wohl erledigt, ist nur bei dreambox relevant:

Code: Alles auswählen

zapit.cpp
#ifdef HAVE_DREAMBOX_HARDWARE
/* on dreambox: use FASTZAP ioctl? */
int fastzap = 1;
#else
int fastzap = 0;
#endif
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

@seife

Hi, können wir eventuell noch diese Woche auf dein sectionsd-mutex-try1.diff hoffen? :)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

Nein. Realistisch werde ich nicht vor Ende nächster Woche dazu kommen, irgendwas an der dbox zu machen. Und selbst das ist noch nicht sicher :(
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

GetAway hat geschrieben:@seife

Hi, können wir eventuell noch diese Woche auf dein sectionsd-mutex-try1.diff hoffen? :)
Probiert mal das (ungetestet, da ich immer noch auf die Hardwarereparatur meines Notebooks warte...):

Code: Alles auswählen

Index: sectionsd.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp,v
retrieving revision 1.265
diff -u -p -r1.265 sectionsd.cpp
--- a/sectionsd.cpp	16 Aug 2008 19:23:18 -0000	1.265
+++ b/sectionsd.cpp	14 Sep 2008 18:44:36 -0000
@@ -4985,6 +4985,8 @@ static s_cmd_table connectionCommands[se
 {	commandDummy1,				"commandPing"				}
 };
 
+static pthread_mutex_t parse_commandMutex = PTHREAD_MUTEX_INITIALIZER;
+
 //static void *connectionThread(void *conn)
 bool parse_command(CBasicMessage::Header &rmsg, int connfd)
 {
@@ -4999,6 +5001,9 @@ bool parse_command(CBasicMessage::Header
 	*/
 	// VERSUCH OHNE CONNECTION-THREAD!
 	// spart die thread-creation-zeit, und die Locks lassen ohnehin nur ein cmd gleichzeitig zu
+
+	pthread_mutex_lock(&parse_commandMutex);
+
 	try
 	{
 		dprintf("Connection from UDS\n");
@@ -5050,6 +5055,7 @@ bool parse_command(CBasicMessage::Header
 		fprintf(stderr, "Caught exception in connection-thread!\n");
 	}
 
+	pthread_mutex_unlock(&parse_commandMutex);
 	return true;
 }
 
(Das ist gegen das ungepatchte CVS, sollte aber auch mit meinem "alten" Patch gehen.)

Evtl. ist es ja so einfach ;)
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

@seife

Zur Info: Gegen den alten Patch kommt dies

Code: Alles auswählen

Info: patch sectionsd-1.265-mutex-try1.diff at path: apps/tuxbox/neutrino/daemons/sectionsd slashes: 0
Info: patch -d /home/jars/tuxbox/tuxbox-cvs/apps/tuxbox/neutrino/daemons/sectionsd -b -B /home/jars/tuxbox/y/Private/patches/backup/apps/tuxbox/neutrino/daemons/sectionsd/ -p0 < /home/jars/tuxbox/y/Private/patches/sectionsd-1.265-mutex-try1.diff
can't find file to patch at input line 8
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: sectionsd.cpp
|===================================================================
|RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp,v
|retrieving revision 1.265
|diff -u -p -r1.265 sectionsd.cpp
|--- a/sectionsd.cpp   16 Aug 2008 19:23:18 -0000   1.265
|+++ b/sectionsd.cpp   14 Sep 2008 18:44:36 -0000
--------------------------
File to patch: 
Skip this patch? [y] 
Skipping patch.
patch: **** malformed patch at line 9: {   commandDummy1,            "commandPing"            }

Ready .... press Enter
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Re: Sectionsd Problem

Beitrag von Houdini »

...du wirst doch wohl noch die 5 Zeilen zu Fuß dazufügen können oder...
*duck*
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

Na logo.
Ich schrieb zur Info! *duffy duck*
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: Sectionsd Problem

Beitrag von Striper »

Houdini hat geschrieben:...du wirst doch wohl noch die 5 Zeilen zu Fuß dazufügen können oder...
*duck*
Viel wichtiger: Bringts was?
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

Da ich nicht täglich deadlock's habe wirds wohl die Zeit zeigen.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

Vielleicht hat einer von euch rausgefunden wie man die deadlock's am
besten provozieren kann. :) Ansonsten könnte ich z.B. Wochen warten,
da ich so gut wie gar keine probleme hatte.
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: Sectionsd Problem

Beitrag von Striper »

seife hat geschrieben: Probiert mal das (ungetestet, da ich immer noch auf die Hardwarereparatur meines Notebooks warte...):

Code: Alles auswählen

some code...
(Das ist gegen das ungepatchte CVS, sollte aber auch mit meinem "alten" Patch gehen.)

Evtl. ist es ja so einfach ;)
Fast so einfach ;)

Auf QVC sind die Hänger weg mit diesem Patch. Passion und RTL-Crime spinnen aber weiterhin rum. Bist aber scheinbar auf dem richtigen Weg.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

Striper hat geschrieben:
seife hat geschrieben: Evtl. ist es ja so einfach ;)
Fast so einfach ;)

Auf QVC sind die Hänger weg mit diesem Patch. Passion und RTL-Crime spinnen aber weiterhin rum. Bist aber scheinbar auf dem richtigen Weg.
Nicht unbedingt. Es können 2 Ursachen sein:
- das Timing ändert sich durch diesen Patch minimal, so dass manche Sender nicht mehr in die Racecondition laufen
- es sind mehrere verschiedene Effekte, und einen haben wir damit erschlagen, aber einen anderen nicht.

Ich muss mir das irgendwann mal genauer anschauen...
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: Sectionsd Problem

Beitrag von Striper »

Kommando zurück. QVC spinnt leider auch immer noch. War wohl nur Zufall das es zuerst geklappt hatte. Schade.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

Hier mal eine kleine Rückmeldung:

Der Patch wirkt sich auf jedenfall nicht negativ aus.
Hänger hatte ich auf RTL-Crime und Passion eh nie.
Zu QVC kann ich nixx sagen, empfange ich nicht in
unserem Privatkabel mit Sateinspeisung.
Wie gesagt, deadlock's bisher keine.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Re: Sectionsd Problem

Beitrag von PauleFoul »

Also der aktuelle CVS-Stand läuft wirklich sehr gut. Auch der "Rest-EPG" wird jetzt schnell eingelesen...

Dickes Lob für Deine tolle Arbeit, Seife! Danke.


Gruß
____Paule
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

Alle, die immer noch harte Aufhänger bei bestimmten Kanälen haben, können mal das probieren:
sectionsd-blacklist-epg-v1.diff

Diesen sectionsd bauen und installieren,
Dann in der epgfilter.xml folgendes rein:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<epgfilter is_whitelist = "1" except_current_next = "1">
                <filter serviceID="445d" name="ProSieben" tsid="0453" onid="0001" blacklist="1"/>
</epgfilter>
Die epgfilter_is_whitelist und except_current_next sind irrelevant, macht einfach die epgfilter.xml wie immer, aber die Kanäle, bei denen der sectionsd komplett gar nichts tun soll, müssen mit "blacklist="1" zusätzlich eingetragen werden, auch wenn sie ohne schon im epgfilter drin waren.

Alle Klarheiten beseitigt? ;)

Den sectionsd dann mit dem Parameter "-x" starten
Edit: patch ist im CVS, "-x" ist nicht mehr notwendig.

Bei meinem Beispiel wird der sectionsd, wenn auf ProSieben (service 0x04530001445d) gezappt wird, fast vollständig angehalten (die Threads CN, EIT und PPT um genau zu sein).

Ein schneller Test hier hat funktioniert, aber ich gehe davon aus, dass noch andere Probleme drin sind. Das sollte evtl. einer der Betroffenen fixen, meine Motivation dazu ist relativ niedrig ;)

Wenn irgendwann das EPG nicht mehr aktualisiert wird und ständig Meldungen in der Art "realPauseCounter !=0" im Log stehen, dann ist irgendwo das .pause und .unpause unsymmetrisch, das müsst ihr dann halt auch noch rausfinden.

Interessant wäre, ob es auf den Problemsendern hilft. Wenn es nach längerer Zeit wieder hängt, dann müssen wir die SDT und NIT-Threads auch noch schlafen legen.
Zuletzt geändert von seife am Sonntag 12. Oktober 2008, 12:53, insgesamt 1-mal geändert.
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Re: Sectionsd Problem

Beitrag von dietmarw »

ergebnisse http://dietmarw.trale.de unter div_tests

xml und start änderungen müsst ihr selber vornehmen..
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

Patch gegen die aktuelle sectionsd.cpp v1.271: sectionsd-blacklist-epg-v2.diff

Den "-x"-Parameter habe ich nun weggelassen, weil ja normalerweise kein Kanal in der epgfilter.xml blacklisted ist. Alles andere ist wie bisher.

Hilft's?
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

JAAAA, jetzt noch 'ne Blacklistverwaltung unter "Service" :D :lol:

Gruß GetAway
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

Heisst das, es hilft?
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

Hatte nie das Probleme mit harten Aufhängern, wollte damit nur ausdrücken
das es jetzt eine ordentliche Blacklistauswertung gibt,....hoffe ich doch. :wink:

Übrigens habe ich Privatkabel mit Sateinspeisung und die NIT wird 1:1 von Sat
ins Kabel gedrückt. Das damit meine Kabelbox nixx anfangen kann ist klar, vielleicht
habe ich deswegen auch keine Aufhänger. :wink: