Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-137424

QObject::disconnect: wildcard call disconnects from destroyed signal of QNativeSocketEngine::unnamed

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.9.1
    • Network: Sockets
    • 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.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            manordheim MÃ¥rten Nordheim
            the compiler Florian Bruhin
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes