[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Need suggestion on how to fix the common crash in plasma-desktop (kdelibs related)
From: "Lamarque V. Souza" <lamarque () kde ! org>
Date: 2012-03-21 1:31:57
Message-ID: 201203202231.57570.lamarque () kde ! org
[Download RAW message or body]
Hi,
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
something using WeatherEngine when plasma-{desktop,device} exit, of course.
There are several bug report about this crash:
https://bugs.kde.org/show_bug.cgi?id=223622
https://bugs.kde.org/show_bug.cgi?id=241509
https://bugs.kde.org/show_bug.cgi?id=261610
And counting. The reports were closed as upstrem but think we can
prevent the crash by adding a method to Plasma::DataEngineManager to check if
it is still valid. Using "if (Plasma::DataEngineManager::self()) {}" also
triggers the crash because of the way Plasma::DataEngineManager::self() is
implemented.
What do you think about adding a Plasma::DataEngineManager::valid()
method?
OBS: That crash is in WeatherEngine since it entered kde-workspace in 2009.
--
Lamarque V. Souza
KDE's Network Management maintainer
http://planetkde.org/pt-br
[Attachment #3 (text/html)]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" \
"http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" \
content="1" /><style type="text/css"> p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Tahoma'; font-size:12pt; font-weight:400; \
font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"> Hi,</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;"> 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 something using WeatherEngine when plasma-{desktop,device} exit, of course. \
There are several bug report about this crash:</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">https://bugs.kde.org/show_bug.cgi?id=223622</p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">https://bugs.kde.org/show_bug.cgi?id=241509</p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">https://bugs.kde.org/show_bug.cgi?id=261610</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;"> And counting. The reports \
were closed as upstrem but think we can prevent the crash by adding a method to \
Plasma::DataEngineManager to check if it is still valid. Using "if \
(Plasma::DataEngineManager::self()) {}" also triggers the crash because of the \
way Plasma::DataEngineManager::self() is implemented.</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;"> What do you think about \
adding a Plasma::DataEngineManager::valid() method?</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">OBS: That crash is in \
WeatherEngine since it entered kde-workspace in 2009.</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">-- </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Lamarque V. Souza</p> <p \
style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">KDE's Network Management \
maintainer</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">http://planetkde.org/pt-br</p></body></html>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic