Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.12
-
None
-
6d3a4546934827955f0eb2b07a9928f82790ba37 (qt/qtbase/5.12) 2ed7831ff636f4fbaec27524d416d63c2fd773bf (qt/qtbase/5.9)
Description
The issue seems to occur when `void tst_QDBusConnection::connectToPeer()` fails on ` QVERIFY(con.isConnected());` after ` QDBusConnection::disconnectFromBus("bubu");`. That causes a 'return' and the server is starts destructing.
QDBusServer::~QDBusServer() locks `d->lock` followed by `QDBusConnectionManager::instance()->mutex`.
`static void qDBusNewConnection(DBusServer *server, DBusConnection *connection, void *data)` locks the same locks, but in the opposite order.