Segfault beim reboot/shutdown

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Segfault beim reboot/shutdown

Beitrag von dbt »

Wird in Diverse Einstellungen->EPG ein Verzeichnis angegeben, gibts ein Segfault beim runterfahren oder reboot. Habe zwar gerade epg_dir.empty() eingesetzt, weil das mit length() wohl zu unsauber war, aber das ändert nichts daran, wenn ein EPG-Verzeichnis angegeben wurde. Kann jemand das auch feststellen.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Segfault beim reboot/shutdown

Beitrag von GetAway »

Ja, ich habe mal /hdd angegeben. Segfault beim reboot.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Segfault beim reboot/shutdown

Beitrag von GetAway »

Das liegt an AudioMute(true). Wenn ich es weg mache gehts.
Ich denk mal weil der Framebuffer schon weg ist und versucht wird das Icon zu malen.

Code: Alles auswählen

if (g_settings.epg_dir.length() != 0) {
				waitforshutdown = true;
				AudioMute(true);
				g_Sectionsd->writeSI2XML(g_settings.epg_dir.c_str());
			}
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Segfault beim reboot/shutdown

Beitrag von dbt »

Wieso muss man da muten? :gruebel: Ansonsten vermute ich, dass es was mit dem Muteicon zu tun haben könnte. Ist ja auch überarbeitet worden. Dafür ist es mir aber heute etwas zu spät zum nachschauen.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Segfault beim reboot/shutdown

Beitrag von seife »

Ich habe es höchstwahrscheinlich gefixt.

...der doppelte code in exitRun() ist allerdings unschön.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Segfault beim reboot/shutdown

Beitrag von GetAway »

seife hat geschrieben:Ich habe es höchstwahrscheinlich gefixt.

...der doppelte code in exitRun() ist allerdings unschön.
Vielleicht ist es so schöner :wink:
Schau doch mal drauf.
exitrun.diff
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Segfault beim reboot/shutdown

Beitrag von dbt »

seife hat geschrieben:Ich habe es höchstwahrscheinlich gefixt.

...der doppelte code in exitRun() ist allerdings unschön.
Danke, scheint so zu sein, aber im shutdown Bild wird leider das MuteIcon dazu noch mit falscher Palette mit reingepinselt.
Man könnte das nochmal direkt nach Audiomute malen, aber das wäre auch wieder etwas unschön, weil doppelt und weil das Icon sonst kurz flackert müsste man g_settings.epg_dir auch doppelt auswerten.

Code: Alles auswählen

--- a/tuxbox/neutrino/src/neutrino.cpp
+++ b/tuxbox/neutrino/src/neutrino.cpp
@@ -3348,8 +3348,10 @@ void CNeutrinoApp::ExitRun(const bool write_si)
 				frameBuffer->paletteSetColor(x, 0x000000, 0xffff);
 			frameBuffer->paletteSet();
 
-			frameBuffer->loadPicture2FrameBuffer("shutdown.raw");
-			frameBuffer->loadPal("shutdown.pal");
+			if (g_settings.epg_dir.empty()) {
+				frameBuffer->loadPicture2FrameBuffer("shutdown.raw");
+				frameBuffer->loadPal("shutdown.pal");
+			}
 
 			networkConfig.automatic_start = (network_automatic_start == 1);
 			networkConfig.commitConfig();
@@ -3358,6 +3360,8 @@ void CNeutrinoApp::ExitRun(const bool write_si)
 			if (!g_settings.epg_dir.empty()) {
 				waitforshutdown = true;
 				AudioMute(true);
+				frameBuffer->loadPicture2FrameBuffer("shutdown.raw");
+				frameBuffer->loadPal("shutdown.pal");
 				g_Sectionsd->writeSI2XML(g_settings.epg_dir.c_str());
 			}
 			else {
Oder man malt das shutdown. logo erst wenn alles durch ist bevor der framebuffer rausfliegt
oder Audiomute(false) setzen, gibt aber wahrscheinlich Probleme mit Lastmode
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Segfault beim reboot/shutdown

Beitrag von seife »

Oder man muted an dieser Stelle einfach direct via g_controld - man will ja eben kein Icon haben. Und zurück ins Neutrino gehts ja auch nicht mehr, so dass der Status falsch sein könnte.

Das Mute ist IMHO ja nur drin, dass nach dem "Ausschalten" sofort der Ton weg ist auch wenn noch 30 Minuten lang der sectionsd die EPG-Info speichert.


...die Beste Lösung wäre natürlich, das EPG-Speichern wegzumachen... <duck'n'run> ;-)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Segfault beim reboot/shutdown

Beitrag von rhabarber1848 »

seife hat geschrieben:...die Beste Lösung wäre natürlich, das EPG-Speichern wegzumachen... <duck'n'run> ;-)
Könnte man doch mittels cdk/configure --enable-stupid-options machen ;)
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Segfault beim reboot/shutdown

Beitrag von dbt »

Verwendet die Funktion eigentlich jemand? Also ohne extra Speicher könnte das recht dumm ausgehen, vermutlich :gruebel: Ich habs nur wegen einiger Tests verwendet.