Revision 5e87d83...
Go back to digest for 24th February 2013Bug Fixes in KDE Base
Fix bug 292950 by deleting QCoreApplication only after
Storage->ServerCore.
The bug occurs because Storage->ServerCore may persist after
QCoreApplication is gone. If the socket receives a remote disconnected
message from virtuoso (which it might because this is shutdown and
virtuoso is being killed) it tries to translate it, but can't because
the translators went with QCoreApplication. Thus the crash.
This was made much less likely by Vishesh already with cea2870f04eec
but we can do better.
For most services connect QCoreApplication::quit() to the service
destroyed() signal.
For the storage service, disconnect that slot from the service and
reconnect it to
ServerCore::destroyed() (so that the application is only quit after the
ServerCore destructor runs). We do this in the service dtor, which is
allowed because the
dtor runs before destroyed() is emitted (I checked this).
FIXED-IN: 4.10.2
REVIEW: 108997
File Changes
- servicestub/servicecontrol.cpp
- services/storage/storage.cpp