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

GTK+ dialogs crash on Wayland

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Done
    • P2: Important
    • None
    • 5.7.0
    • Core: Plugins, QPA: Wayland
    • None
    • Fedora 25. Gnome/wayland session. calibre-2.65.1-1.fc26.x86_64 qt5 5.7.0.

    Description

      When running a gnome/wayland session, trying to open a file dialog results in a crash. Affected applications include Qt Creator, Calibre, and basically any other application using native file, color or font dialogs. Easy to reproduce with qtbase/tests/manual/dialogs.

      traceback:

      #0 0x000055731d033d30 in ?? ()
      #1 0x00007ff949f873a6 in XChangeProperty (dpy=0x55731d0328a0, w=0, property=property@entry=68, type=type@entry=33,
      format=format@entry=32, mode=mode@entry=0, data=0x7fff46edcb68 "\025", nelements=1) at ChProp.c:92
      #2 0x00007ff949fa5509 in XSetTransientForHint (dpy=<optimized out>, w=<optimized out>, propWindow=<optimized out>)
      at SetHints.c:286
      #3 0x00007ff932284d3e in QGtk3Dialog::show(QFlags<Qt::WindowType>, Qt::WindowModality, QWindow*) ()
      from /usr/lib64/qt5/plugins/platformthemes/libqgtk3.so
      #4 0x00007ff9322879d1 in QGtk3FileDialogHelper::show(QFlags<Qt::WindowType>, Qt::WindowModality, QWindow*) ()
      from /usr/lib64/qt5/plugins/platformthemes/libqgtk3.so
      #5 0x00007ff94cd10e60 in QDialogPrivate::setNativeDialogVisible(bool) () from /lib64/libQt5Widgets.so.5
      #6 0x00007ff94cd23552 in QFileDialog::setVisible(bool) () from /lib64/libQt5Widgets.so.5
      #7 0x00007ff94cd11d0a in QDialog::exec() () from /lib64/libQt5Widgets.so.5
      #8 0x00007ff94cd2405a in QFileDialog::getOpenFileUrls(QWidget*, QString const&, QUrl const&, QString const&, QString*, QFlags<QFileDialog::Option>, QStringList const&) () from /lib64/libQt5Widgets.so.5
      #9 0x00007ff94cd242bf in QFileDialog::getOpenFileNames(QWidget*, QString const&, QString const&, QString const&, QString*, QFlags<QFileDialog::Option>) () from /lib64/libQt5Widgets.so.5
      #10 0x00007ff94d2bfbe1 in meth_QFileDialog_getOpenFileNames ()
      from /usr/lib64/python2.7/site-packages/PyQt5/QtWidgets.so
      #11 0x00007ff958bf739f in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
      #12 0x00007ff958bfa07c in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
      #13 0x00007ff958b82e3d in function_call () from /lib64/libpython2.7.so.1.0
      #14 0x00007ff958b5dff3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
      #15 0x00007ff958b6ce4c in instancemethod_call () from /lib64/libpython2.7.so.1.0
      #16 0x00007ff958b5dff3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
      #17 0x00007ff958bb5117 in slot_tp_init () from /lib64/libpython2.7.so.1.0
      #18 0x00007ff958bb3dde in type_call () from /lib64/libpython2.7.so.1.0
      #19 0x00007ff958b5dff3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
      #20 0x00007ff958bf5e96 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
      #21 0x00007ff958bfa07c in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
      #22 0x00007ff958bf6fb1 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
      #23 0x00007ff958bfa07c in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
      #24 0x00007ff958b82d5c in function_call () from /lib64/libpython2.7.so.1.0
      #25 0x00007ff958b5dff3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
      #26 0x00007ff958b6ce4c in instancemethod_call () from /lib64/libpython2.7.so.1.0
      #27 0x00007ff958b5dff3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
      #28 0x00007ff958bf0127 in PyEval_CallObjectWithKeywords () from /lib64/libpython2.7.so.1.0
      #29 0x00007ff94870a1e8 in PyQtSlot::call(_object*, _object*) const ()
      from /usr/lib64/python2.7/site-packages/PyQt5/QtCore.so
      #30 0x00007ff94870a630 in PyQtSlot::invoke(void*, _object, void*, bool) const ()
      from /usr/lib64/python2.7/site-packages/PyQt5/QtCore.so
      #31 0x00007ff94870b1d0 in PyQtSlotProxy::unislot(void**) () from /usr/lib64/python2.7/site-packages/PyQt5/QtCore.so
      #32 0x00007ff94870bc47 in PyQtSlotProxy::qt_metacall(QMetaObject::Call, int, void**) ()
      from /usr/lib64/python2.7/site-packages/PyQt5/QtCore.so
      #33 0x00007ff94c30316b in QMetaObject::activate(QObject*, int, int, void**) () from /lib64/libQt5Core.so.5
      #34 0x00007ff94cb1df52 in QAction::triggered(bool) () from /lib64/libQt5Widgets.so.5
      #35 0x00007ff94cb20982 in QAction::activate(QAction::ActionEvent) () from /lib64/libQt5Widgets.so.5
      #36 0x00007ff94cc0d5bd in QAbstractButtonPrivate::click() () from /lib64/libQt5Widgets.so.5
      #37 0x00007ff94cc0d804 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /lib64/libQt5Widgets.so.5
      #38 0x00007ff94ccd981a in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /lib64/libQt5Widgets.so.5
      --Type <return> to continue, or q <return> to quit--
      #39 0x00007ff94cb6bc30 in QWidget::event(QEvent*) () from /lib64/libQt5Widgets.so.5
      #40 0x00007ff94ccd9902 in QToolButton::event(QEvent*) () from /lib64/libQt5Widgets.so.5
      #41 0x00007ff94cb2496c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
      #42 0x00007ff94cb2cfcd in QApplication::notify(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
      #43 0x00007ff94d31f26e in sipQApplication::notify(QObject*, QEvent*) ()
      from /usr/lib64/python2.7/site-packages/PyQt5/QtWidgets.so
      #44 0x00007ff94c2dc12a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5
      #45 0x00007ff94cb2b65d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /lib64/libQt5Widgets.so.5
      #46 0x00007ff94cb85dd0 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () from /lib64/libQt5Widgets.so.5
      #47 0x00007ff94cb88603 in QWidgetWindow::event(QEvent*) () from /lib64/libQt5Widgets.so.5
      #48 0x00007ff94cb2496c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
      #49 0x00007ff94cb2c111 in QApplication::notify(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
      #50 0x00007ff94d31f26e in sipQApplication::notify(QObject*, QEvent*) ()
      from /usr/lib64/python2.7/site-packages/PyQt5/QtWidgets.so
      #51 0x00007ff94c2dc12a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5
      #52 0x00007ff94c61ae73 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
      from /lib64/libQt5Gui.so.5
      #53 0x00007ff94c61c925 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /lib64/libQt5Gui.so.5
      #54 0x00007ff94c5fd7cb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
      from /lib64/libQt5Gui.so.5
      #55 0x00007ff932336c60 in userEventSourceDispatch(_GSource*, int (void*), void*) () from /lib64/libQt5XcbQpa.so.5
      #56 0x00007ff94e276f02 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
      #57 0x00007ff94e277280 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0
      #58 0x00007ff94e27732c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
      #59 0x00007ff94c329d6f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
      from /lib64/libQt5Core.so.5
      #60 0x00007ff94c2db0ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
      #61 0x00007ff94c2e2bac in QCoreApplication::exec() () from /lib64/libQt5Core.so.5
      #62 0x00007ff94d31da6b in meth_QApplication_exec_ () from /usr/lib64/python2.7/site-packages/PyQt5/QtWidgets.so
      #63 0x00007ff958bf739f in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
      #64 0x00007ff958bfa07c in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
      #65 0x00007ff958bf6fb1 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
      #66 0x00007ff958bfa07c in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
      #67 0x00007ff958bf6fb1 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
      #68 0x00007ff958bfa07c in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
      #69 0x00007ff958bf6fb1 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
      #70 0x00007ff958bfa07c in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
      #71 0x00007ff958bfa169 in PyEval_EvalCode () from /lib64/libpython2.7.so.1.0
      #72 0x00007ff958c1354f in run_mod () from /lib64/libpython2.7.so.1.0
      #73 0x00007ff958c14782 in PyRun_FileExFlags () from /lib64/libpython2.7.so.1.0
      #74 0x00007ff958c15995 in PyRun_SimpleFileExFlags () from /lib64/libpython2.7.so.1.0
      #75 0x00007ff958c27920 in Py_Main () from /lib64/libpython2.7.so.1.0
      #76 0x00007ff957e41421 in __libc_start_main () from /lib64/libc.so.6
      #77 0x000055731b5a97ba in _start ()

      There's also a message before the crash:

      (python2:10369): GLib-GObject-WARNING **: invalid cast from 'GdkWaylandDisplay' to 'GdkX11Display'

      Attachments

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

        Activity

          People

            qt.team.quick.subscriptions Qt Quick and Widgets Team
            nirik Kevin Fenzi
            Votes:
            7 Vote for this issue
            Watchers:
            15 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes