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

QFileDialog crash on Centos 7

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P2: Important
    • None
    • 5.9.1
    • None
    • * Centos 7 (with QFileDialog::DontUseNativeDialog)
       * Windows 7 (without QFileDialog::DontUseNativeDialog)
       * Qt 5.9.1

    Description

      Openning a QFileDialog with option QFileDialog::DontUseNativeDialog causes a segfault on Linux Centos 7. The Qt build is the official 64-bit release 5.9.1.

      Here is the backtrace:

      (gdb) bt
      #0 0x00007fffe38dbc96 in update_current_folder_get_info_cb (cancellable=0xa943a0 [GCancellable], info=0x0, error=0xa576c0, user_data=0xac6580) at gtkfilechooserwidget.c:4272
      #1 0x00007fffe38e055a in query_info_callback (source_object=<optimized out>, result=<optimized out>, user_data=0xad1b70) at gtkfilesystem.c:419
      #2 0x00007fffe344ff93 in g_task_return_now (task=0xb19440 [GTask]) at gtask.c:1106
      #3 0x00007fffe344ffc9 in complete_in_idle_cb (task=0xb19440) at gtask.c:1120
      #4 0x00007ffff2af8d7a in g_main_context_dispatch (context=0x7fffe40016f0) at gmain.c:3152
      #5 0x00007ffff2af8d7a in g_main_context_dispatch (context=context@entry=0x7fffe40016f0) at gmain.c:3767
      #6 0x00007ffff2af90b8 in g_main_context_iterate (context=context@entry=0x7fffe40016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3838
      #7 0x00007ffff2af916c in g_main_context_iteration (context=0x7fffe40016f0, may_block=1) at gmain.c:3899
      #8 0x00007ffff698e11f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Core.so.5
      #9 0x00007ffff693a4aa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Core.so.5
      #10 0x00007ffff7916307 in QDialog::exec() ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #11 0x00007ffff78e602d in QFileDialog::getOpenFileUrl(QWidget*, QString const&, QUrl const&, QString const&, QString*, QFlags<QFileDialog::Option>, QStringList const&) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #12 0x00007ffff78e60ea in QFileDialog::getOpenFileName(QWidget*, QString const&, QString const&, QString const&, QString*, QFlags<QFileDialog::Option>) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #13 0x00000000004042da in MainWindow::on_pushButtonNonNative_clicked() ()
      #14 0x00000000004046fe in MainWindow::qt_metacall(QMetaObject::Call, int, void**) ()
      #15 0x00007ffff69665d4 in QMetaObject::activate(QObject*, int, int, void**) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Core.so.5
      #16 0x00007ffff78ad342 in QAbstractButton::clicked(bool) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #17 0x00007ffff78ad544 in () at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #18 0x00007ffff78af0de in () at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #19 0x00007ffff78af22c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #20 0x00007ffff773ca58 in QWidget::event(QEvent*) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #21 0x00007ffff76fe4bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #22 0x00007ffff77062c3 in QApplication::notify(QObject*, QEvent*) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #23 0x00007ffff693beb8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Core.so.5
      #24 0x00007ffff7704f2f in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #25 0x00007ffff7755ee6 in () at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #26 0x00007ffff775883b in () at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #27 0x00007ffff76fe4bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #28 0x00007ffff77058e7 in QApplication::notify(QObject*, QEvent*) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5
      #29 0x00007ffff693beb8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Core.so.5
      
      #30 0x00007ffff6f2a310 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Gui.so.5
      #31 0x00007ffff6f2c105 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Gui.so.5
      #32 0x00007ffff6f07d7b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Gui.so.5
      #33 0x00007fffeb27df40 in ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/plugins/platforms/../../lib/libQt5XcbQpa.so.5
      #34 0x00007ffff2af8d7a in g_main_context_dispatch (context=0x7fffe40016f0) at gmain.c:3152
      #35 0x00007ffff2af8d7a in g_main_context_dispatch (context=context@entry=0x7fffe40016f0) at gmain.c:3767
      #36 0x00007ffff2af90b8 in g_main_context_iterate (context=context@entry=0x7fffe40016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3838
      #37 0x00007ffff2af916c in g_main_context_iteration (context=0x7fffe40016f0, may_block=1) at gmain.c:3899
      #38 0x00007ffff698e11f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Core.so.5
      #39 0x00007ffff693a4aa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Core.so.5
      #40 0x00007ffff6942d34 in QCoreApplication::exec() ()
       at /home/francisg/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Core.so.5
      #41 0x0000000000403432 in main ()
      

      A minimal code to reproduce this issue is here: https://github.com/giraldeau/fix-filedialog
      Actually, the non-native dialog crashes on Linux, and the native dialog crashes on Windows. One can test both alternatives with this small dialog.

      The QFileDialog works correctly using Qt 5.7.0 on Linux.

      Attachments

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

        Activity

          People

            liaqi Liang Qi
            fgiraldeau Francis Giraldeau
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes