Sectionsd verabschiedet sich bei ARD?

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Token
Einsteiger
Einsteiger
Beiträge: 383
Registriert: Sonntag 7. April 2002, 14:29

Beitrag von Token »

... bitfitter, ich vergass: die geaenderte start_neutrino muesste dann natuerlich ins /var/etc/init_d rein !!!
... wie schon angedeutet, ins rapidshare mit der datei und hier verlinken !
cu token
sagem-avia600_enx-1xi-cable-telecom
jmittelst
Tuxboxer
Tuxboxer
Beiträge: 6044
Registriert: Montag 17. November 2003, 06:48

Beitrag von jmittelst »

Wer die Sectionsd aus dem JtG-Image denn testen will (auf das Log achten, mag sein, das der in einem Yadi wegen der Libs oder sowas garnicht läuft), der kann hier laden: http://jmittelst.no-ip.com/Dateien/sectionsd.zip

Viel Spaß und berichtet mal.

cu
Jens
Token
Einsteiger
Einsteiger
Beiträge: 383
Registriert: Sonntag 7. April 2002, 14:29

Beitrag von Token »

... DANKE an Jens fuers Bereitstellen des Fixes !

... ich habe den fix von bitfitter gestern abend erhalten, und gleich mal
eingespielt, heute morgen lief die box noch und der epg war auch da ! ;)
... jedoch muss noch ein memleak im sectionsd oder in der zapit drin sein, weil der speicher wird immer mehr verbraten, bis irgendwann (nach tagen) dann nix mehr ueber ist.
... im 11er Yadi-Enigma ist es aber noch schlimmer, da habe ich 22mb restspeicher ... von 64mb gesamtspeicher wohlgemerkt.
(aber das ist hier im neutrino-part erstmal OT)

cu token
sagem-avia600_enx-1xi-cable-telecom
bitfitter
Interessierter
Interessierter
Beiträge: 52
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von bitfitter »

Hi all,

ich kann nur bestätigen, was Token bereits gepostet hat. Hab die neue sectionsd nun ca. 10 Std. non-stop auf ARD laufen gelassen und sie ist NICHT abgestürzt. Der EPG ist auch noch vollständig da! Das mit dem Memory leak habe ich nicht bemerkt, weil ich es nicht geprüft habe.
Da ich das Yadi Neutrino-Snapshot vom 25.06.2006 benutze, gibt es hier scheinbar auch keine Konflikte mit den Libs, wie von 'jmittelst' evtl. vermutet.

@Token
Hast Du denn mal das Memory-Verhalten bei älteren sectionsd's überwacht? Verhalten die sich unterschiedlich?
Have fun...,
/bitfitter

==-- Nokia, Kabel, 2xI, AVIA 500 --==
==-- Nokia, Sat, 2xI, AVIA 600L --==
Token
Einsteiger
Einsteiger
Beiträge: 383
Registriert: Sonntag 7. April 2002, 14:29

Beitrag von Token »

... ich hatte mal eine sectionsd_test hier, die war vom januar 06 und hatte mit einem 10er-test-yadi mal 10 tage nonstop durchgehalten.
... damals hatte ich gedacht: "oh, die dev's haben es gepackt, die junges sind auf dem richtigen weg" ... dann kamen aber fixes ueber fixes, und dann ging nix mehr, jetzt sind nur noch 3-4 tage normal.
... jetzt wird durch irgendwas speicher vernichtet, beim normalen tv-schauen, das ist nicht normal.
... ist nur komisch das eine dream-500 mit 32MB unter enigma wochen-bzw. monatelang laeuft, aber das 11er yadi unter enigma nach neustart nur noch 36MB frei hat, und taeglich 2mb verliert, und das 11er-yadi neutrino o.g. speicherressourcen vernichtet durch "nixtun".
... mir persoenlich wuerde ein stable-release der sectionsd vermutlich reichen, ehe ich es mit funktionen vollpacke die nicht funktionieren oder buggy sind.

... aber ich betone immer wieder: es ist nur meine(!) meinung, und soll in keinster weise die arbeit der entwickler schmaehlern.
... nur: "weniger ist manchmal mehr" bzw. "back to the roots" kann auch unserer box gut tun.

cu token

p.s.: ich teste das 11er-yadi-neutrino auf einer 32mb-nokia-cable und das 11er-enigma auf einer 64mb sagem-cable.
sagem-avia600_enx-1xi-cable-telecom
supermaus
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Freitag 18. November 2005, 07:17

Beitrag von supermaus »

Gibt's denn für "normal Sterbliche", die sich nur hin und wieder ein Update-Image (Snapshot mtd Update) installieren, auch eine Lösung dieses Problems?
Regloh
Semiprofi
Semiprofi
Beiträge: 1470
Registriert: Donnerstag 14. März 2002, 07:14

Beitrag von Regloh »

ja, es wäre wieder mal zeit für "hin und wieder".
mach einfach ein update und gut ist. im jtg-image z.b. einfach nur das internetupdate nutzen und gut ist's.
Regloh
supermaus
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Freitag 18. November 2005, 07:17

Beitrag von supermaus »

Danke, Internet-Update wäre ja eine feine Sache. Aber das aktuelle Image (25.06.2006 13:51, 2.1.0.11) ist das Gleiche, was bei meiner Box schon installiert ist!?!
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Seid ihr denn sicher, dass die ARD noch Mist baut? Ich hatte nämlich seit geraumer Zeit keine Abstürze mehr, obwohl ich kein Update gemacht habe.
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

Nein, ARD hat den Fehler behoben.

Obwohl einige mit dem alten sectionsd sagten früher gab es die Option nicht wo Houdini den Fix eingebaut hatte und der Fehler müsse woanders liegen
Der Fix von Houdini funktionierte aber trotzdem, hatte das paar mal getestet und bedanke mich dafür. :P

Aber wenn ihr 2 unermüdlichen noch Bock habt...

Die Direktfeeds z.b. Erotik werden abends manchmal abgeschaltet in den letzten Tagen, dann semmelt die box weg wenn man drauf zappt.
Da wäre ja noch fehlende EPG Problem was keiner außer mir hat oder besser gesagt drauf achtet. :(
Auch wäre noch das das NTP/DVB Zeitholen nicht in Ordnung ist, aber ich denke mal die Luft ist bestimmt vorerst raus. :D

Also langweilig würde es am sectionsd bestimmt nicht so schnell.
Token
Einsteiger
Einsteiger
Beiträge: 383
Registriert: Sonntag 7. April 2002, 14:29

Beitrag von Token »

... und wenn einer mir verraten taete, warum der speicher zur neige geht - dem waere ich sehr verbunden.
... was ist an einer DREAM anders als bei einer Dbox, wieso laeuft hier ein enigma unter 32mb - die DBox schafft das niemals, und neutrino frisst auch neuerdings etwas viel speicher.
(gemeint ist "stable", meine dm500 ist z.z. bei 860h -> mit cvs-release)
cu token
sagem-avia600_enx-1xi-cable-telecom
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Ich nehme an, dass die Neutrino Devs soooo total grüne Ökos sind, die immer nur rumkiffen, statt Bugs zu suchen, weisste?

Und die Ökos finden es einfach sooo irgendwie schädlich, wenn man die Box 860h am Stück betreibt.

Du musst auch mal an die Umwelt denken und irgendwie schont das ja ökologisch auch total deinen Geldbeutel, wenn du die Box nachts ausmachst.
Und die Grünen haben bestimmt schon den blauen Engel für Neutrino beantragt und finden dass das total korrekt, so wie das ist. Weisste?

:D ;)
Token
Einsteiger
Einsteiger
Beiträge: 383
Registriert: Sonntag 7. April 2002, 14:29

Beitrag von Token »

... nirvana, ich wollte niemanden auf dem schlips treten, schon garnicht euch dev's, aber als user vergleicht man nunmal, und wenn dabei solche fehler auftreten, fragt man schon mal vorsichtig nach ! ;)
... aber wenn ich die beitraege zum thema epg/sectionsd so lese - dann ist das die grosse unbekannte im neutrino :D :gruebel:
... die multifeeds sind ja auch im sectionsd mit drin, was eigentlich noch ???
koennte man nicht die einzelnen komponenten trennen, um so den fehler eingrenzen zu koennen ?
cu token

p.s.: wie ist denn der entwicklungsstand zum kernel-2.6-snapshot, wird ein solcher mal erscheinen ?
sagem-avia600_enx-1xi-cable-telecom
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

@token
mach dir bitte die mühe und lies dir mal die vergangenen sectionsd threads durch. es wurde bereits alles mehrmals durchgekaut, was so grob in die richtung deiner vorschläge geht. der letzte angekündigte versuch steht unter dem motto spielstopp - leider hat sich homar seitdem nicht mehr gemeldet. kerliman hat vor kurzem einen gleichen/ähnlichen vorschlag gemacht ... vlt ist er ja weitergekommen - ich vermute eher nicht.
das projekt sectionsd kann nicht immer wieder in frage gestellt und von vorn begonnen werden - der aktuelle stand liegt im head branch. nirvana & houdini ist mehr geholfen mit debug logs und bug reports, als cvs reversie spielen und alles zu hinterfragen, was die beiden in den letzten monaten erarbeitet haben. zudem sind die sectionsd scan erweiterungen von nirvana mit einer option in neutrino abschaltbar.

@nico
an deine liste für die 2 unermündlichen würde ich noch gern ein #ifdef für den arzka patch und einen changenotifier für maxevents/oldevents/timetocache hängen

regards
innu
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

@token
Quark! Ich fühle mich doch nicht auf den Schlips getreten. Ich weiß nur keine Antwort und fand's grad lustig. :D
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

kann man der sectionsd nicht einfach sagen, nach 20%MEM resette dich selber ? :gruebel:
ich hab mal probehalber die funktion freemem probiert.
25,3%MEM+920kb free ----> 24,2+1300kb free
der epg ist nach der aktion kurz weg gewesen, und hat sich schnell wieder erholt.
ganz den epg zu killen finde ich nicht so schön, aber manchmal ist es der einfachste weg, wenn die box lahm wird.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Echt? Freemem funktioniert? Cool! Hatte ich selbst nie getestet.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ja es macht aber den speicher nicht wirklich frei.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

mb405 hat geschrieben:ja es macht aber den speicher nicht wirklich frei.
Tja, so wie es jetzt im CVS ist, habe ich das auch nicht programmiert. Das hat jemand optimiert. Ob meine ursprüngliche Version funktioniert hat, weiß ich aber wie gesagt auch nicht.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ich schau mal, was da unterschiedlich ist.
aus einen patch von dir

Code: Alles auswählen

static void commandFreeMemory(int connfd, char *data, const unsigned dataLength)
{
	lockTransponders();
	MySItranspondersOrderUniqueKey::iterator t = mySItranspondersOrderUniqueKey.begin();
	while (t != mySItranspondersOrderUniqueKey.end()) {
		mySItranspondersOrderUniqueKey.erase(t->first);
		t = mySItranspondersOrderUniqueKey.begin();
	}
	unlockTransponders();
	lockServices();
	MySIservicesOrderUniqueKey::iterator s = mySIservicesOrderUniqueKey.begin();
	while (s != mySIservicesOrderUniqueKey.end()) {
		mySIservicesOrderUniqueKey.erase(s->first);
		s = mySIservicesOrderUniqueKey.begin();
	}
	unlockServices();
	lockBouquets();
	MySIbouquetsOrderUniqueKey::iterator b = mySIbouquetsOrderUniqueKey.begin();
	while (b != mySIbouquetsOrderUniqueKey.end()) {
		mySIbouquetsOrderUniqueKey.erase(b->first);
		b = mySIbouquetsOrderUniqueKey.begin();
	}
	unlockBouquets();
	lockEvents();
	MySIeventsOrderFirstEndTimeServiceIDEventUniqueKey::iterator e = mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.begin();
	while (e != mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.end()) {
		deleteEvent((*e)->uniqueKey());
		e = mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.begin();
	}
	unlockEvents();
	
	struct sectionsd::msgResponseHeader responseHeader;
	responseHeader.dataLength = 0;
	writeNbytes(connfd, (const char *)&responseHeader, sizeof(responseHeader), WRITE_TIMEOUT_IN_SECONDS);
	return ;
}
und die version im cvs

Code: Alles auswählen

static void commandFreeMemory(int connfd, char *data, const unsigned dataLength)
{
	EITThreadsPause();
	dmxSDT.pause();
	lockTransponders();
	mySItranspondersOrderUniqueKey.clear();

	unlockTransponders();
	lockServices();
	mySIservicesOrderUniqueKey.clear();

	unlockServices();
	lockBouquets();
	mySIbouquetsOrderUniqueKey.clear();

	unlockBouquets();
	lockEvents();

	mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.clear();
	mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.clear();
	mySIeventsOrderUniqueKey.clear();
	mySIeventsNVODorderUniqueKey.clear();

	unlockEvents();
	dmxSDT.unpause();
	EITThreadsUnPause();

	struct sectionsd::msgResponseHeader responseHeader;
	responseHeader.dataLength = 0;
	writeNbytes(connfd, (const char *)&responseHeader, sizeof(responseHeader), WRITE_TIMEOUT_IN_SECONDS);
	return ;
}
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Token
Einsteiger
Einsteiger
Beiträge: 383
Registriert: Sonntag 7. April 2002, 14:29

Beitrag von Token »

@innu...:
... ich stelle das project "sectionsd" nicht in frage, ich gebe doch nur den derzeitigen test-stand bei mir wieder !!!
... und dies wurde ausdruecklich so erwuenscht ! ;)
... ja, ich kenne den "spielstop"-thread ... sonst haette ich nicht den sectionsd_test erwaehnt.
... nirvana's antwort mir gegenueber bringt es jedoch auf den punkt.
... daher ja auch von mir nochmals der vorschlag, den sectionsd zu teilen (s. kerliman's idee)
... und wenn dann alle teile laufen, dann macht man die integration.
(soweit die theorie) ;)
... aber vielleicht ist auch die freemem-variante ein versuch wert ?
... mb405, ist das "enduser"-tauglich - was muss man wo,wie eingeben ?
(aka freemem script vielleicht)
... oder ist ein binary-patch notwendig, wenn ja, dann her damit - zum testen !
cu token
sagem-avia600_enx-1xi-cable-telecom
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

nein ich hab es in die neutrino.cpp mit aufgenommen, und unter die blaue taste bei epg auslesen ein/aus reingemacht.

Code: Alles auswählen

// -- Sectionsd pause
	int dummy = g_Sectionsd->getIsScanningActive();
	CMenuOptionChooser* oj = new CMenuOptionChooser(LOCALE_MAINMENU_PAUSESECTIONSD, &dummy, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, new CPauseSectionsdNotifier );
	StreamFeatureSelector.addItem(GenericMenuSeparatorLine);
	StreamFeatureSelector.addItem(oj);
+	StreamFeatureSelector.addItem(new CMenuForwarder(LOCALE_SECTIONSD_EPGFREEMEM, true, NULL, this, "epgfreememory", 											CRCInput::RC_nokey));
+	StreamFeatureSelector.addItem(new CMenuForwarder(LOCALE_SECTIONSD_EPGSAVE, true, NULL, this, "epgspeichern", 											CRCInput::RC_nokey));
+	StreamFeatureSelector.addItem(new CMenuForwarder(LOCALE_SECTIONSD_EPGRELOAD, true, NULL, this, "epgladen", 											CRCInput::RC_nokey));
+	StreamFeatureSelector.addItem(GenericMenuSeparatorLine);
#ifdef _EXPERIMENTAL_SETTINGS_
	//Experimental Settings
und weiter unten im code dann

Code: Alles auswählen

else if(actionKey=="shutdown")
	{
		ExitRun(true);
		returnval = menu_return::RETURN_NONE;
	}
+	else if(actionKey=="epgspeichern")
+	{
+		char epgsavemessage[100];
+		sprintf(epgsavemessage, "Möchten Sie die EPG-Daten abspeichern?\n\nDas dauert ca.1-2minuten!\n");
+		if (ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, epgsavemessage, CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, "softupdate.raw") != CMessageBox::mbrNo)
+			{
+			g_Sectionsd->writeSI2XML(g_settings.epg_dir);
+			}
+		returnval = menu_return::RETURN_EXIT_ALL;
+	}
+	else if(actionKey=="epgladen")
+	{
+		char epgsavemessage[100];
+		sprintf(epgsavemessage, "Möchten Sie die EPG-Daten laden?\n");
+		if (ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, epgsavemessage, CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, "softupdate.raw") != CMessageBox::mbrNo)
+			{
+			g_Sectionsd->readSIfromXML(g_settings.epg_dir);
+			}
+		returnval = menu_return::RETURN_EXIT_ALL;
+	}
+	else if(actionKey=="epgfreememory")
+	{
+		g_Sectionsd->freeMemory();
+	}
	else if(actionKey=="reboot")
vielleicht kann mal noch einer drübersehen, und die meldungen sollten ja noch in die locale wandern.

@Houdini
spricht was dagegen, die "originalsachen" von Nirvana reinzumachen ?