Sectionsd Problem

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Re: Sectionsd Problem

Beitrag von Houdini »

Also ich habe mit dem cvs Stand keine Probleme,
Was für Abstürze gibt es denn?
Gibt es nen log dazu?
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Re: Sectionsd Problem

Beitrag von tcf4004 »

Bei manchen Sendern friert die Box ein, nix geht mehr. Tritt nicht auf wenn sectionsd ausgeschaltet ist.

Funktioniert bei Dir denn Bloomberg Germany auf Astra 12551V ohne dass nach einigen Sekunden nix mehr geht?
Also ich habe diverse CVS/Imagestände bis 2004 zurück probiert und da war überall derselbe Fehler.

Getestet habe ich zuletzt mit sectionsd 1.264 ohne Patches.
Auf der Seriellen ist bei/nach Auftreten des Freezes leider absolut gar nichts zu sehen.

Wenn ich Zeit habe checke ich nochmal nen tagesaktuelles CVS aus und probiers damit nochmal.

PS: Bis vor kurzem funktionierte Bloomberg noch einwandfrei, keine Abstürze... es muss irgendetwas auf Seiten des Senders bzw. Transponders geändert worden sein.
Zuletzt geändert von tcf4004 am Sonntag 24. August 2008, 12:03, insgesamt 1-mal geändert.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

Wenn AudioSlyer mal anstelle nichtssagender Andeutungen wirklich sagen würde, wie er es gefixt hat, dann könnte man da was machen, aber so halt nicht.

Bei mir (Philips, Kernel 2.6) tritts nicht auf.
Zuletzt geändert von seife am Sonntag 24. August 2008, 12:15, insgesamt 1-mal geändert.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

...oder mal die Hardware nennen.

Mit Nokia 2xI Avia500 keine probs.

Gruß
GetAway
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Re: Sectionsd Problem

Beitrag von DrStoned »

Ich habe auch 2 Nokia AVIA 500 Sat-Boxen. Bei mir tritt das geschilderte Problem auf QVC, Bloomberg und Arte auf. Eventuell noch paar andere, diese 3 habe ich getestet. Schalte ich den sectionsd aus, bleibt die Box nicht hängen. Die Box schmiert so ab, dass man nicht mal mehr mit Telnet drauf kommt. Auch ein serielles Log spuckt, ca. 1 Sekunde nach dem Umschalten auf einen der oben genannten Sender, nichts mehr aus.

@ GetAway

Hast Du Sat oder Kabel? Meines Wissens nach tritt der Fehler nur auf Nokia Sat-Boxen auf. Bei der Philips-Box meines Sohnes schmiert die Box beim Umschalten auf einen dieser Sender nicht ab.

Greetz von DrStoned :lol: :lol: :lol:
Zuletzt geändert von DrStoned am Sonntag 24. August 2008, 13:01, insgesamt 1-mal geändert.
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Re: Sectionsd Problem

Beitrag von tcf4004 »

Mein Bekannter hat auch ne Nokia Avia500 Sat und da treten leider Probs auf.
Empfangsanlage ist ok, ging ja auch jahrelang mit den gleichen Settings/Image problemlos.
Sogar neu durchgemessen, Ergebnis: fast 100% gleiche Werte wie vor einem Jahr.
Ausserdem haben ja andere auch das Problem.

Im Kabel scheint es so zu sein, dass RTL Crime und Passion im Kabel Deutschland-Netz die gleichen Probleme haben, während dieselben Sender im Unitymedia-Netz die Box nicht crashen lassen. Daher dachte ich bisher dass hat irgendetwas mit der providerseitigen Einspeisung (EPG und so) zu tun. Aber bei Sat hängen wir ja alle am "selben Provider", nämlich im Falle von Bloomberg Astra 19.2E. Daher wundert es mich dass bei einigen das Problem auftritt, bei anderen wiederum nicht, und das bei gleicher Hardware-Basis.

Dann kam mir noch die Idee, vielleicht liegt es daran, einige haben Diseqc/mehrere Sats, andere wiederum nur Astra (ohne Diseqc). Kann aber auch nicht sein, denn im KD-Kabelnetz gibts ja auch Probleme.

Den Ansatz mit der Winterzeit habe ich auch mal aufgegriffen:
Time_of_change: 0xd5ed010000 [= 2008-10-26 01:00:00 (UTC)]
Das tritt aber genauso auch zB bei ARD oder anderen Sendern auf, und die laufen ja, also kann es imho daran auch nicht liegen.

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

Re: Sectionsd Problem

Beitrag von Houdini »

Ich habe mal geschaut, diese Zeitumstellungssection wird von der SW nicht ausgewertet.
ich habe hier Sat Sagem Avia600
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

DrStoned hat geschrieben: ...
@ GetAway

Hast Du Sat oder Kabel? Meines Wissens nach tritt der Fehler nur auf Nokia Sat-Boxen auf. Bei der Philips-Box meines Sohnes schmiert die Box beim Umschalten auf einen dieser Sender nicht ab.
...
Hi,

ich/wir haben hier eine private Kabelhausanlage mit zentraler Sateinspeisung.
Wie gesagt, läuft wie geschmiert.

Ich weiss aber, das hier keine korrekte NIT ins Netz eingespeist wird, deswegen muss ich auch immer
die service.xml ändern, da die Modulations nach Schnell/Normalscan trotzdem immer auf "6" (Auto) steht.

Gruß GetAway
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Re: Sectionsd Problem

Beitrag von tcf4004 »

Hmm, echt mysteriös das Ganze.

Ich hab hier UM Kabel, kann "leider" auf keinem Kanal zum Testen nen Absturz provozieren.
Habe aber mal div. funktionierende Channels angezappt, dabei ist mir aufgefallen dass
die Werte für reserved_3 und Descriptor_loop_length anscheinend immer 15 betragen,
also gleich sind:

Code: Alles auswählen

TOT-decoding....
Table_ID: 115 (0x73)  [= Time Offset Table (TOT)]
section_syntax_indicator: 0 (0x00)
reserved_1: 1 (0x01)
reserved_2: 3 (0x03)
Section_length: 26 (0x001a)
UTC_time: 0xd5ae161104 [= 2008-08-24 16:11:04 (UTC)]
reserved_3: 15 (0x0f)
Descriptor_loop_length: 15 (0x000f)
Während es auf Sat bei Bloomberg so aussieht:

Code: Alles auswählen

TOT-decoding....
Table_ID: 115 (0x73)  [= Time Offset Table (TOT)]
section_syntax_indicator: 0 (0x00)
reserved_1: 1 (0x01)
reserved_2: 3 (0x03)
Section_length: 65 (0x0041)
UTC_time: 0xd5ad182205 [= 2008-08-23 18:22:05 (UTC)]
reserved_3: 15 (0x0f)
Descriptor_loop_length: 54 (0x0036)
Also vielleicht ist da irgendwas zu lang und verursacht sowas wie nen buffer overflow beim Einlesen?

Ausserdem ist der Wert für die Section_length mit 65 deutlich höher, kann es evtl. sein,
dass wie von AudioSlyer nebulös angedeutet, da irgendetwas deswegen nun länger braucht zum Einlesen?
Evtl. senden die ja nun mehr EPG-Daten als früher und deswegen treten jetzt die Probs auf?

Leider habe ich hier kein Sat und kann nicht testen ob andere, funktionierende Sat-Sender auch eine abweichende Descriptor_loop_length bzw. Section_length haben. Dann wären die Überlegungen hier hinfällig.

Komisch ist auch, dass bei meinem Bekannten (Sat) arte ging, also anders wie bei Dr. Stoned, wo ja auch auf diesem Sender das Problem auftritt.

Ich hab mir auch mal die infoviewer.cpp angesehen, aber mangels C/C++ Kenntnissen steige ich da überhaupt nicht durch.

@AudioSlyer
Etwas mehr Aufklärung wäre hilfreich.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Sectionsd Problem

Beitrag von GetAway »

...habe auch das Gefühl das es eventuell an den Headern liegen könnte.
Leider blick ich da net so durch.

dmxapi.cpp:

Code: Alles auswählen

struct SI_section_TOT_header
{
	unsigned char      table_id                 :  8;
	unsigned char      section_syntax_indicator :  1;
	unsigned char      reserved_future_use      :  1;
	unsigned char      reserved1                :  2;
	unsigned short     section_length           : 12;
	unsigned long long UTC_time                 : 40;
	unsigned char      reserved2                :  4;
	unsigned short     descriptors_loop_length  : 12;
}
__attribute__ ((packed)); /* 10 bytes */

struct SI_section_TDT_header
{
	unsigned char      table_id                 :  8;
	unsigned char      section_syntax_indicator :  1;
	unsigned char      reserved_future_use      :  1;
	unsigned char      reserved1                :  2;
	unsigned short     section_length           : 12;
/*	unsigned long long UTC_time                 : 40;*/
	UTC_t              UTC_time;
}
__attribute__ ((packed)); /* 8 bytes */
Passt schon:
Auszug aus der ETSI
5.2.6 Time Offset Table (TOT)
The TOT (see table 9) carries the UTC-time and date information and local time offset. The TOT shall consist of a
single section using the syntax of table 9. This TOT section shall be transmitted in TS packets with a PID value of
0x0014, and the table_id shall take the value 0x73.
Table 9: Time offset section
Syntax Number of bits Identifier
time_offset_section(){
table_id 8 uimsbf
section_syntax_indicator 1 bslbf
reserved_future_use 1 bslbf
reserved 2 bslbf
section_length 12 uimsbf
UTC_time 40 bslbf
reserved 4 bslbf
descriptors_loop_length 12 uimsbf
for(i=0;i<N;i++){
descriptor()
}
CRC_32 32 rpchof
}
5.2.5 Time and Date Table (TDT)
The TDT (see table 8 ) carries only the UTC-time and date information.
The TDT shall consist of a single section using the syntax of table 8. This TDT section shall be transmitted in TS
packets with a PID value of 0x0014, and the table_id shall take the value 0x70.
Table 8: Time and date section
Syntax Number of bits Identifier
time_date_section(){
table_id 8 uimsbf
section_syntax_indicator 1 bslbf
reserved_future_use 1 bslbf
reserved 2 bslbf
section_length 12 uimsbf
UTC_time 40 bslbf
}
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

Wenn die Kiste so crashed, dass du per seriell / telnet nicht mehr drauf kommst,dann sieht das verdammt nach einem ähnlichen Problem wie "damals" mit den ARD Sendern und hw_sections aus. "Damals" sind auch nur Nokias hart gecrashed, die anderen haben nur schlecht funktioniert, IIRC.

Zum Glück habe ich keine Nokia ;-)

Da muss sich halt mal jemand die Treiber anschauen. Evtl. ist es ja mit carjays Fixes in den 2.6er Treibern auch schon besser. Unterschiedliche ucodes könnten auch was ausmachen.
T-Tron
Interessierter
Interessierter
Beiträge: 67
Registriert: Mittwoch 2. November 2005, 07:45

Re: Sectionsd Problem

Beitrag von T-Tron »

Testest doch mal, ob Virtual Zap geht. :wink:
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Re: Sectionsd Problem

Beitrag von tcf4004 »

Ich habe gehört dass es mit ucode 00f0 + eingeschalteten hw_sections gehen soll.
Habs allerdings nicht selbst getestet, möchte ungern meine jahrelang gut funktionierende Konstellation aus ucode 0014 + hw_sections aus aufgeben.

@T-Tron
Sobald ich wieder bei meinem Bekannten bin, kann ich das mit dem Virtual Zap gerne mal testen.

@seife
Du hast Recht, das sieht genauso aus wie damals bei ARD, nur dass nun hw_sections ausschalten auch nix mehr bringt auf der Nokia.
Mit dem Treiber kann ich nachvollziehen, was mich allerdings noch verwundert ist, dass AudioSlyer ja nur was in der infoviewer.cpp geändert hat und das Problem damit zumindest "workarounded" sein soll...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

AudioSlyer hat
a) keine dbox sondern eine dreambox 600 IIRC
b) hing sich seine Kiste nicht hart weg.

Das sind hier 2 verschiedene Probleme.
Eins, wo sectionsd deadlocked, und neutrino deswegen hängt . Telnet => "killall sectionsd" und die Kiste reagiert wieder. Das kann man wohl im infoviewer würgarounden.
Das andere ist das, wo sich die Kiste hart weghängt => kein Telnet, keine serielle Konsole mehr. Da ist der Treiber / die Hardware "schuld". Evtl. kann man die Bedingung, die das triggert, im sectionsd abstellen, aber eher nicht im infoviewer.
AudioSlyer
Erleuchteter
Erleuchteter
Beiträge: 450
Registriert: Sonntag 28. Juli 2002, 01:18

Re: Sectionsd Problem

Beitrag von AudioSlyer »

Heute Abend habe ich wieder Zugriff auf meine VM. Ich schau dann mal nach.

@Seife: DM600pvr, DM500 laufen bei mir mit Neutrino. Seit dem Wochenende habe ich auch wieder ene DBox2 Nokia rumstehen, aber leider fehlt die FB .(
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Sectionsd Problem

Beitrag von Tommy »

aber leider fehlt die FB
...findste doch im Webif ;-)
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Re: Sectionsd Problem

Beitrag von tcf4004 »

Aaargh, ich werd noch bekloppt :o

Heute extra früher Schluss gemacht und zu meinem Bekannten gefahren um auf Sat mit verschiedenen ucodes/hw_sections an+aus zu testen.
Und plötzlich geht Bloomberg, QVC und alle anderen Sender auf Astra 12551V einwandfrei!
Es wurde weder etwas an der Anlage noch am Image verändert, also haben "die" am Sender bzw. Transponder irgendetwas wieder (zurück)gedreht, offenbar ähnlich wie bei ARD damals...

Kann das jemand bestätigen?

Dafür habe ich zur Abwechslung nun mal AudioSlyer's Problem erlebt...
Auf Discovery Channel gezappt und schwupps - Infobar eingefroren, Box reagiert scheinbar nicht mehr,
lässt sich aber über Konsole/Telnet noch bedienen, killall sectionsd und weiter gehts.
Das Lustige ist dass dieses Verhalten aber nicht bei jedem Zap passiert, und wenn die Events schon
vorhanden sind, tritts offenbar gar nicht auf.
cheetah
Neugieriger
Neugieriger
Beiträge: 4
Registriert: Dienstag 16. Mai 2006, 16:27

Re: Sectionsd Problem

Beitrag von cheetah »

Hi,

Meine Box: Nokia Avia500

Teste mal auf Bibel TV da stürzt sie bis jetzt immer ab. QVC läuft zur Zeit, aber das kann heute Abend schon wieder anders sein!

Mit ucode014 (normal) und HW Sections AN läufts auch bei Bibel TV.

DVBSnoop liefert viele Countrycodes auf dem Transponder, auch dauert es relativ lange beim analysieren. Zum Vergleich mal --das Erste-- und --Bibel TV--:

Code: Alles auswählen

(Das Erste)
~ # dvbsnoop -n 3 -nph 0x14
dvbsnoop V1.4.40 -- http://dvbsnoop.sourceforge.net/

------------------------------------------------------------
SECT-Packet: 00000001   PID: 20 (0x0014), Length: 29 (0x001d)
Time received: Mon 2008-08-25  14:56:52.483
------------------------------------------------------------
PID:  20 (0x0014)  [= assigned for: DVB Time and Date Table (TDT), Time Offset Table (TOT)]

Guess table from table id...
TOT-decoding....
Table_ID: 115 (0x73)  [= Time Offset Table (TOT)]
section_syntax_indicator: 0 (0x00)
reserved_1: 1 (0x01)
reserved_2: 3 (0x03)
Section_length: 26 (0x001a)
UTC_time: 0xd5af125653 [= 2008-08-25 12:56:53 (UTC)]
reserved_3: 15 (0x0f)
Descriptor_loop_length: 15 (0x000f)

        DVB-DescriptorTag: 88 (0x58)  [= local_time_offset_descriptor]
        descriptor_length: 13 (0x0d)
            Country_code:  DEU
            Country_region_ID: 0 (0x00)
            reserved_1: 1 (0x01)
            local_time_offset_polarity: 0  [= plus to UTC]
            Local_time_offset: 02:00
            Time_of_change: 0xd5ed010000 [= 2008-10-26 01:00:00 (UTC)]
            Next_time_offset: 01:00


CRC: 4010318811 (0xef089bdb)
==========================================================


------------------------------------------------------------
SECT-Packet: 00000002   PID: 20 (0x0014), Length: 8 (0x0008)
Time received: Mon 2008-08-25  14:56:52.977
------------------------------------------------------------
PID:  20 (0x0014)  [= assigned for: DVB Time and Date Table (TDT), Time Offset Table (TOT)]

Guess table from table id...
TDT-decoding....
Table_ID: 112 (0x70)  [= Time Date Table (TDT)]
section_syntax_indicator: 0 (0x00)
reserved_1: 1 (0x01)
reserved_2: 3 (0x03)
Section_length: 5 (0x0005)
UTC_time: 0xd5af125654 [= 2008-08-25 12:56:54 (UTC)]
==========================================================


------------------------------------------------------------
SECT-Packet: 00000003   PID: 20 (0x0014), Length: 29 (0x001d)
Time received: Mon 2008-08-25  14:56:53.476
------------------------------------------------------------
PID:  20 (0x0014)  [= assigned for: DVB Time and Date Table (TDT), Time Offset Table (TOT)]

Guess table from table id...
TOT-decoding....
Table_ID: 115 (0x73)  [= Time Offset Table (TOT)]
section_syntax_indicator: 0 (0x00)
reserved_1: 1 (0x01)
reserved_2: 3 (0x03)
Section_length: 26 (0x001a)
UTC_time: 0xd5af125654 [= 2008-08-25 12:56:54 (UTC)]
reserved_3: 15 (0x0f)
Descriptor_loop_length: 15 (0x000f)

        DVB-DescriptorTag: 88 (0x58)  [= local_time_offset_descriptor]
        descriptor_length: 13 (0x0d)
            Country_code:  DEU
            Country_region_ID: 0 (0x00)
            reserved_1: 1 (0x01)
            local_time_offset_polarity: 0  [= plus to UTC]
            Local_time_offset: 02:00
            Time_of_change: 0xd5ed010000 [= 2008-10-26 01:00:00 (UTC)]
            Next_time_offset: 01:00


CRC: 1685888585 (0x647c9e49)
==========================================================

Code: Alles auswählen

(Bibel TV)
~ # dvbsnoop -n 3 -nph 0x14
dvbsnoop V1.4.40 -- http://dvbsnoop.sourceforge.net/

------------------------------------------------------------
SECT-Packet: 00000001   PID: 20 (0x0014), Length: 8 (0x0008)
Time received: Mon 2008-08-25  14:57:43.707
------------------------------------------------------------
PID:  20 (0x0014)  [= assigned for: DVB Time and Date Table (TDT), Time Offset Table (TOT)]

Guess table from table id...
TDT-decoding....
Table_ID: 112 (0x70)  [= Time Date Table (TDT)]
section_syntax_indicator: 0 (0x00)
reserved_1: 1 (0x01)
reserved_2: 3 (0x03)
Section_length: 5 (0x0005)
UTC_time: 0xd5af125744 [= 2008-08-25 12:57:44 (UTC)]
==========================================================


------------------------------------------------------------
SECT-Packet: 00000002   PID: 20 (0x0014), Length: 68 (0x0044)
Time received: Mon 2008-08-25  14:57:43.729
------------------------------------------------------------
PID:  20 (0x0014)  [= assigned for: DVB Time and Date Table (TDT), Time Offset Table (TOT)]

Guess table from table id...
TOT-decoding....
Table_ID: 115 (0x73)  [= Time Offset Table (TOT)]
section_syntax_indicator: 0 (0x00)
reserved_1: 1 (0x01)
reserved_2: 3 (0x03)
Section_length: 65 (0x0041)
UTC_time: 0xd5af125744 [= 2008-08-25 12:57:44 (UTC)]
reserved_3: 15 (0x0f)
Descriptor_loop_length: 54 (0x0036)

        DVB-DescriptorTag: 88 (0x58)  [= local_time_offset_descriptor]
        descriptor_length: 52 (0x34)
            Country_code:  DEU
            Country_region_ID: 0 (0x00)
            reserved_1: 1 (0x01)
            local_time_offset_polarity: 0  [= plus to UTC]
            Local_time_offset: 02:00
            Time_of_change: 0xd5ed010000 [= 2008-10-26 01:00:00 (UTC)]
            Next_time_offset: 01:00

            Country_code:  AUT
            Country_region_ID: 0 (0x00)
            reserved_1: 1 (0x01)
            local_time_offset_polarity: 0  [= plus to UTC]
            Local_time_offset: 02:00
            Time_of_change: 0xd5ed010000 [= 2008-10-26 01:00:00 (UTC)]
            Next_time_offset: 01:00

            Country_code:  CHE
            Country_region_ID: 0 (0x00)
            reserved_1: 1 (0x01)
            local_time_offset_polarity: 0  [= plus to UTC]
            Local_time_offset: 02:00
            Time_of_change: 0xd5ed010000 [= 2008-10-26 01:00:00 (UTC)]
            Next_time_offset: 01:00

            Country_code:  LUX
            Country_region_ID: 0 (0x00)
            reserved_1: 1 (0x01)
            local_time_offset_polarity: 0  [= plus to UTC]
            Local_time_offset: 02:00
            Time_of_change: 0xd5ed010000 [= 2008-10-26 01:00:00 (UTC)]
            Next_time_offset: 01:00


CRC: 2339316682 (0x8b6f23ca)
==========================================================


------------------------------------------------------------
SECT-Packet: 00000003   PID: 20 (0x0014), Length: 8 (0x0008)
Time received: Mon 2008-08-25  14:57:53.694
------------------------------------------------------------
PID:  20 (0x0014)  [= assigned for: DVB Time and Date Table (TDT), Time Offset Table (TOT)]

Guess table from table id...
TDT-decoding....
Table_ID: 112 (0x70)  [= Time Date Table (TDT)]
section_syntax_indicator: 0 (0x00)
reserved_1: 1 (0x01)
reserved_2: 3 (0x03)
Section_length: 5 (0x0005)
UTC_time: 0xd5af125754 [= 2008-08-25 12:57:54 (UTC)]
==========================================================

~ #
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Sectionsd Problem

Beitrag von rhabarber1848 »

tcf4004 hat geschrieben:Im Kabel scheint es so zu sein, dass RTL Crime und Passion im Kabel Deutschland-Netz die gleichen Probleme haben
Zur Info: Mit einer Sagem-Box gibt es hier mit KD und den besagten Sendern keine Probleme.
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Re: Sectionsd Problem

Beitrag von tcf4004 »

So, bin jetzt wieder zu Hause, das mit BibelTV teste ich beim nächsten Mal, weiss aber noch nicht wann das sein wird. Ich kann nur sagen, dass BibelTV im UM-Netz geht.

Noch was zu den Descriptor/Section_lenghts: Die sind zB bei RTL2 genauso mit 4 Countrycodes, und da stürzt nix ab,
kommt also vermutlich nicht daher. Ausserdem sind die beiden Längen manchmal abweichend, meine o.g. These ist damit auch hinfällig.

Es könnte lediglich sein, dass zB bei section_length > 0x40 oder so irgendwo noch ein usleep fehlt oder sowas, ist aber reine "Spinnerei" von mir.

Noch was: Auf Eurosport bekomme ich gar kein EPG, da steht immer nur "Warte auf EPG-Informationen...", ist das bei Euch auch so?

Was mir bei Bloomberg noch auffiel, ist das beim SPTS-Mode sehr häufig der Ton nach ca. 0,5s "verschwindet", im PES-Mode tritt
das nicht auf. Ist aber auch nur Spinnerei und hat wohl nix mit den Probs hier zu tun, zumal ja aktuell Bloomberg läuft.
Tja, und zum Virtual Zap testen ist es deswegen auch nicht gekommen ;)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

Wir müssen hier sehr genau 2 Fälle unterscheiden:
- box stürzt hart ab, kein telnet/seriell
- neutrino hängt sich auf, killall sectionsd hilft.

Der 2. Fall ist ein locking-Problem: um eine Anfrage von neutrino zu bearbeiten, nimmt sectionsd einen lock, bearbeitet die Anfrage, gibt den lock wieder frei.
Kommt nun eine 2. Anfrage, dann muss die warten, bis die erste fertig ist, damit sie "ihren" lock bekommt.
Irgendwo ist nun ein Bug drin, der dazu führt, dass der Lock nicht freigegeben wird (glaube ich eher nicht), oder dass er zwischendurch mal freigegeben wird (1. anfrage), worauf sich die 2. anfrage den lock holt, aber die erste braucht ihn nochmal, um fertig zu werden, bekommt ihn aber nicht mehr.

...oder so ähnlich.
Dummerweise kann man das fast nur mit intensivem Code anschauen und Codepfade durchgehen finden / fixen. Insbesondere ist das Timing-Kritisch: wenn die events z.B. schon da sind, dann dauert es u.U. länger oder kürzer, ein bestimmtes Codesegment zu durchlaufen, was dann dazu führt, dass der oben gezeigt Fall _nicht_ auftritt. Ebenso kann es durchaus sein, dass ich auf kernel 2.6 das nicht sehe weil 1.) eine andere Threading-Implementation verwendet wird und 2.) der scheduler, der den einzelnen Threads / Prozessen die Rechenzeit zuteilt, anders arbeitet als in 2.4.

Immerhin habe ich eine Idee, wie man das lösen könnte (ein Mutex, der nur die Anfragen serialisiert, also ganz am Anfang jeder Anfrage genommen und ganz am Ende wieder freigegeben wird, was deadlocks vermeiden sollte, auch wenn es eine "Holzhammermethode" ist), allerdings kann ich wegen Hardwareschaden frühestens Mitte nächster Woche da was probieren.

Eurosport sendet übrigens kein EPG.
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Re: Sectionsd Problem

Beitrag von tcf4004 »

ok hab ich verstanden, interessant, Danke :)

Bei Eurosport hats mich halt nur gewundert dass auf Sat kein EPG kam, weil im UM Kabelnetz gibts EPG auf diesem Sender. Naja irgendwo müssen die ja Transponderkapazitäten sparen ;)
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Re: Sectionsd Problem

Beitrag von dietmarw »

seife hat geschrieben:...
Der 2. Fall ist ein locking-Problem: um eine Anfrage von neutrino zu bearbeiten, nimmt sectionsd einen lock, bearbeitet die Anfrage, gibt den lock wieder frei.
Kommt nun eine 2. Anfrage, dann muss die warten, bis die erste fertig ist, damit sie "ihren" lock bekommt.
Irgendwo ist nun ein Bug drin, der dazu führt, dass der Lock nicht freigegeben wird (glaube ich eher nicht), oder dass er zwischendurch mal freigegeben wird (1. anfrage), worauf sich die 2. anfrage den lock holt, aber die erste braucht ihn nochmal, um fertig zu werden, bekommt ihn aber nicht mehr.
ich bin ja kein c coder, aber sollte man so etwas nicht debuggen können in dem man jeweils bei der "lock" und "unlock" aktion etwas (anfordernden prozess oder so etwas) in ein logfile schreibt?
(nicht in /tmp sonder ausnahmsweise in /var wegen evtl. abstürze)
da sollte doch dann klar ersichtlich sein, wann wer wo locked und unlocked (oder es versucht)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Sectionsd Problem

Beitrag von seife »

In dem moment veränderst du das Timing, und der Fehler tritt nicht mehr auf.
Es gibt schon ein #define um das Locking im sectionsd zu debuggen, aber das verursacht soviel output auf stdout, dass es eben wieder nicht wirklich benutzbar ist. Und es verändert das Timing.
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Re: Sectionsd Problem

Beitrag von tcf4004 »

Tja, bzgl. Bloomberg zu früh gefreut, gerade nen Anruf von meinem Bekannten bekommen, Problem is wieder da :-O

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

Virtual Zap hat er auch mal ausprobiert, dann kommt der Absturz aber offenbar schon bevor das Bild kommt...
Also selbes Verhalten wie beim direkten Anzappen, nur augenscheinlich hängt sich hier irgendwas dann noch früher weg,
so dass überhaupt kein Bild kommt, sondern direkt die Inforbar einfriert.

Das gibts echt nicht, vorgestern konnte ich das auf Bloomberg trotz intensiver Versuche nicht provozieren.
Und es wurde absolut nix geändert, nur Receiver/TV wurde ein/ausgeschaltet. Sogar der Startkanal (also vor den "Testzaps")
war immer der gleiche, nämlich ARD. Also muss vorgestern irgendetwas ein paar usec kürzer oder länger gedauert haben,
sodass es nicht aufgetreten ist... Argh, ich hasse es wenn man Fehler nicht reproduzieren kann ;)

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.