Need suggestion on how to fix the common crash in plasma-desktop (kdelibs related)

Lamarque V. Souza lamarque at
Wed Mar 21 12:20:15 GMT 2012

Em Wednesday 21 March 2012, Aaron J. Seigo escreveu:
> On Tuesday, March 20, 2012 22:31:57 Lamarque V. Souza wrote:
> > 	There is a crash in WeatherEngine (kde-workspace) triggered by the fact
> > 
> > that Plasma::DataEngineManager::self() (kdelib) is invalid when
> > plasma-{desktop,device} are exiting. WeatherEngine::~WeatherEngine()
> > calls WeatherEngine::unloadIons(), which tries to use the invalid
> > Plasma::DataEngineManager::self(). The crash only happens if there is
> this happens only when the application uncleanly exits. if you notice in
> the bug reports you linked to there was a problem elsewhere (e.g. an
> xioerror, an uncaught exception, etc.) and that caused an abort of the
> process with an unclean exit which then triggers this problem. the cause
> of the crash was never the WeatherEngine itself, but rather a crash in
> WeatherEngine was triggered while the application was otherwise closing
> down due to an error elsewhere that was itself bringing down the
> application.

	a simple killall plasma-device suffices to make WeatherEngine hit the 
invalid Plasma::DataEngineManager::self(). I know that there is kquitapp, 
which I have just checked and it avoids the crash, but not everybody uses it.
> DataEngines created by DataEngineManager *must* be released prior to
> application exit. and normally this happens except in such cases where the
> application is brought down by an abnormal situation.

	I do not consider a TERM signal an abnormal situation. Could we add a 
signal handler to plasma-{desktop,device} to re-route the TERM signal to the 
code kquitapp triggers in plasma-{desktop,device}?
> so while you can make the changes David suggests, it will only change the
> backtraces in those bug reports but not actually solve anything in the real
> world. the aborts will still happen as a result of the underlying error.

	The crash does not happen if WeatherEngine's dtor is changed to do not 
use Plasma::DataEngineManager::self().

Lamarque V. Souza
KDE's Network Management maintainer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the kde-core-devel mailing list