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

Deadlock happens when a Q_GLOBAL_STATIC object connected to QtDBus signal

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2: Important
    • Resolution: Done
    • Affects Version/s: 5.6.0 RC
    • Fix Version/s: 5.6.1
    • Component/s: D-Bus
    • Labels:
      None
    • Environment:
      Linux, Qt 5.6.0 RC
    • Commits:
      b77ef8a7e6e4104067d52824e29eadc8c66f5929

      Description

      See backtrace for more details.

      An arbitrary QObject is connected to a D-Bus signal via QDBusConnection::connect. If this object is deleted only in a static destructor, it's possible that the QDBusConnectionManager thread has already exited. This causes a deadlock because QObject::destroyed is connected via Qt::BlockingQueuedConnection to the QDBusConnectionPrivate object and its thread is no longer processing events.

        Attachments

          Issue Links

          For Gerrit Dashboard: QTBUG-51648
          # Subject Branch Project Status CR V

            Activity

              People

              • Assignee:
                csslayer Weng Xuetian
                Reporter:
                csslayer Weng Xuetian
              • Votes:
                1 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes