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 cea2870f 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). BUG: 292950 FIXED-IN: 4.10.2 REVIEW: 108997
parent
31410207
Please register or sign in to comment