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

Total freeze inside QDBusConnection callWithCallBack error callback

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Not Evaluated
    • 4.6.3
    • 4.6.2
    • D-Bus
    • None
    • 90d398e5bef2a66ab944e1cc191c1ad6569e321a

    Description

      Hi!

      The following issue affects several qt versions but in the actual test case I used libqt4-dbus 4:4.6.2-0ubuntu5 on ubuntu 10.04 i386.

      When using QDBusConnection::callWithCallBack, if the dbus method call fails and the error callback is called, if in that slot I show a QMessageBox the loop event and the application freeze and I have to kill it manually.

      The problem seems related due to QMessageBox::information/critical/etc. invokation that spawn a loop event like QDialog::exec, as a workaround in the error handler I can call QMetaObject::invokeMethod with Qt::QueuedConnection that calls a secondary slot where the QMessageBox invokation does not freeze.

      Note: this affects only the error handler, and not the normal handler.

      In attach sources and .pro files, to reproduce just run it and click several time on "testOk" and "testError", to see the workaround in action uncomment the //#define WORKAROUND line.

      Regards

      Niko

      Attachments

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

        Activity

          People

            tmacieir Thiago Macieira (closed Nokia identity) (Inactive)
            nicola.mfb Nicola Ranaldo
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes