[Development] QTBUG-48709: calling ::exit() may crash

Robert Griebl robert.griebl at pelagicore.com
Wed Oct 21 03:15:38 CEST 2015


On 20.10.2015 17:56, Thiago Macieira wrote:
> ...because the application will unload the libraries while other threads are
> still running code from those threads. In the bug report, the crash happens
> because of the QXcbEventReader thread, but it could have been any other thread
> we start or any other library starts.
>
> Can anyone think of a solution to this problem?

We had the exact some problem with Wayland a few weeks ago, where 
QtWayland would call ::exit() if it encounters an error: the process 
would then crash while trying to cleanup a sqlite database. Because 
there's no normal QApplication shutdown, no qAddPostRoutine() cleanup 
takes place and the databases are still active when the sqlite plugins 
get unloaded.

You only really have 2 possibilities here:

  1) if you really must exit *now*, do it the ugly way: call _Exit()

  2) if you can return to the event-loop one more time, call qApp->exit()


-- 
Robert Griebl
SENIOR SOFTWARE ENGINEER

Pelagicore AG
Balanstr. 55, 81541 Munich, Germany
robert.griebl at pelagicore.com
www.pelagicore.com



More information about the Development mailing list