Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.9.1
-
None
Description
Starting with Qt 6.9.1, due to https://codereview.qt-project.org/c/qt/qtbase/+/633924 I have been getting
09:18:26.511 WARNING qt Unknown module:none:0 QObject::disconnect: wildcard call disconnects from destroyed signal of QNativeSocketEngine::unnamed
from here: https://github.com/qt/qtbase/blob/v6.9.1/src/network/socket/qabstractsocket.cpp#L523
when a QLocalSocket is closing its connection.
Stacktrace:
#7 0x00007ffff5691626 in QMessageLogger::warning (this=<optimized out>, msg=0x7ffff5a6f9f0 "QObject::disconnect: wildcard call disconnects from destroyed signal of %s::%s") at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qlogging.cpp:633 #8 0x00007ffff57c555f in QMetaObjectPrivate::disconnect (sender=sender@entry=0x7fff900ebe50, signal_index=signal_index@entry=-1, smeta=smeta@entry=0x7ffff01f1660 <QNativeSocketEngine::staticMetaObject>, receiver=receiver@entry=0x0, method_index=method_index@entry=-1, disconnectType=disconnectType@entry=QMetaObjectPrivate::DisconnectAll, slot=0x0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:3761 #9 0x00007ffff57c5bc3 in QObject::disconnect (sender=0x7fff900ebe50, signal=signal@entry=0x0, receiver=receiver@entry=0x0, method=method@entry=0x0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:3328 #10 0x00007ffff00d9a5b in QObject::disconnect (this=<optimized out>, signal=<optimized out>, receiver=<optimized out>, member=<optimized out>, this=<optimized out>, signal=<optimized out>, receiver=<optimized out>, member=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.h:292 #11 QAbstractSocketPrivate::resetSocketLayer (this=0x5555587bfed0) at /usr/src/debug/qt6-base/qtbase/src/network/socket/qabstractsocket.cpp:523 #12 0x00007ffff00dc042 in QAbstractSocketPrivate::readFromSocket (this=this@entry=0x5555587bfed0) at /usr/src/debug/qt6-base/qtbase/src/network/socket/qabstractsocket.cpp:1204 #13 0x00007ffff00dc0c7 in QAbstractSocketPrivate::canReadNotification (this=0x5555587bfed0) at /usr/src/debug/qt6-base/qtbase/src/network/socket/qabstractsocket.cpp:627 #14 0x00007ffff00e89c2 in QAbstractSocketEngine::readNotification (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/network/socket/qabstractsocketengine.cpp:120 #15 QReadNotifier::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/network/socket/qnativesocketengine.cpp:1238
Unfortunately I have been unable to find out why/where the QNativeSocketEngine::destroyed() signal is getting connected. I can't seem to be able to reproduce this with a minimal reproducer so far, and attempts to find the culprit with gdb and:
set breakpoint pending on break QObject::connect condition 1 (int)strcmp(sender->metaObject()->className(), "QNativeSocketEngine") == 0 commands 1 p sender->metaObject()->className() p signal p receiver->metaObject()->className() p method end run
Resulted in no breakpoints being hit. I also wasn't able to find out what the slot is via break QMetaObjectPrivate::disconnectHelper and taking a look at the data there.