我在使用QSqlDatabase的应用程序上有一个奇怪的行为。
这是我正在使用的简单代码:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", QString::number(this->m_id));
db.setHostName(SERVER_DATABASE_DATABASE_HOST);
db.setDatabaseName(SERVER_DATABASE_DATABASE_NAME);
db.setUserName(SERVER_DATABASE_USERNAME);
db.setPassword(SERVER_DATABASE_PASSWORD);
if( !db.open() ){
...
}
...
这段代码在QRunnablerun()
的方法中执行,并且我有n(n~20)个异步运行而没有问题的任务(没有重复的数据库连接,连接被删除,ecc ..)。
问题是,经过大量迭代后,执行崩溃。
崩溃是可复制的,但不是确定性的。
我尝试在调试模式下运行应用程序,但调试器停在我调用db.open()
函数的行,没有更多信息(没有堆栈跟踪,没有信号)。
我的系统规格:
- MySQL v5.7.17(社区版)
- Mac OSX 10.11.6
- Qt 5.7.0
任何建议都非常感谢