Created attachment 55387 [details] Test app See the attached test for a common possible case: QWebSettings::enablePersistentStorage(); QWebSettings::globalSettings()->setIconDatabasePath("."); When we call QWebSettings::setIconDatabasePath() we don't make sure that the icon database has been closed before opening it again. There is protection for that in IconDatabase::open() by checking if the sqlite database is open, however it don't work here since the state only change when the database is opened on the spawned thread. I don't know what happens in release, there might be an opened sqlite database on the first path specified to setIconDatabasePath. Reproduced on MSVC2008.
Works for me. Your example crashes because there is no QApplication instance so threads are not working properly. By changing it to: #include <QApplication> #include <QWebSettings> int main(int argc, char** argv) { QApplication app(argc, argv); QWebSettings::enablePersistentStorage(); QWebSettings::globalSettings()->setIconDatabasePath("."); return 0; } Everything works for me.