Details
-
Bug
-
Resolution: Done
-
P2: Important
-
4.6.2
-
None
-
None
-
f4bada8cbba5f209556ad4e3703d412e4146a0af
Description
During QApplication destruction it is possible that FbsBitmap objects are tried to be freed when the font and bitmap server connection has already been closed down. QTimer::singleShot(0, this, SLOT(initialize())); in the test application seems to trigger the crash in destruction phase with more ease. It is not a good way to construct the QT application but seems to be still used in some code code snippet that shows the cleanup order from QApplication.
QApplication::~QApplication()
...
qt_cleanup(); <-- this closes the FBS connection ...
qUnregisterGuiVariant(); <-- triggers the child object deletion, where
QtWebkit's cache deletes QPixmaps Steps to reproduce:
1) compile the attached sample application
2) start crash_test application
3) press end call key to close applications (the sweet spot seems to be when ACID3 test has been executed a bit over 50%)
Call stack from the panic and test application as attachments. I assume that FBS connection should be closed only after all QObjects are deleted since those could be using QPixmaps that are still trying to access the FBS.