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

QtCreator crashes when changing screen resolutions

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Affects Version/s: 5.5.0
    • Fix Version/s: 5.6.0 RC
    • Component/s: QPA: X11/XCB
    • Labels:
      None
    • Environment:
      Linux x86_64
    • Commits:
      a094af001795c9651b299d700a992150d1aba33a

      Description

      I frequently get different kinds of crashes when changing screen resolution or switching screens on and off. For example:

      #0  0x00007f981195efde in QXcbScreen::mapToNative(QRect const&) const () from /home/ulf/Qt/Tools/QtCreator/bin/plugins/platforms/../../../lib/qtcreator/libQt5XcbQpa.so.5
      (gdb) bt
      #0  0x00007f981195efde in QXcbScreen::mapToNative(QRect const&) const () from /home/ulf/Qt/Tools/QtCreator/bin/plugins/platforms/../../../lib/qtcreator/libQt5XcbQpa.so.5
      #1  0x00007f9811963eb3 in QXcbWindow::mapToNative(QRect const&, QXcbScreen const*) const ()
         from /home/ulf/Qt/Tools/QtCreator/bin/plugins/platforms/../../../lib/qtcreator/libQt5XcbQpa.so.5
      #2  0x00007f98119654da in QXcbWindow::propagateSizeHints() () from /home/ulf/Qt/Tools/QtCreator/bin/plugins/platforms/../../../lib/qtcreator/libQt5XcbQpa.so.5
      #3  0x00007f9811969fed in QXcbWindow::setGeometry(QRect const&) () from /home/ulf/Qt/Tools/QtCreator/bin/plugins/platforms/../../../lib/qtcreator/libQt5XcbQpa.so.5
      #4  0x00007f9819d774c3 in QWidgetPrivate::show_sys() () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #5  0x00007f9819d7f0e3 in QWidgetPrivate::show_helper() () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #6  0x00007f9819d81af5 in QWidget::setVisible(bool) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #7  0x00007f981a0a55a6 in ?? () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #8  0x00007f981a0a5dc1 in QCompleter::complete(QRect const&) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #9  0x00007f9819f14ef3 in QWidgetLineControl::complete(int) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #10 0x00007f9819e9025d in ?? () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #11 0x00007f98189f436e in QMetaObject::activate(QObject*, int, int, void**) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Core.so.5
      #12 0x00007f981a0d0c95 in QWidgetLineControl::textEdited(QString const&) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #13 0x00007f9819f1718b in QWidgetLineControl::finishChange(int, bool, bool) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #14 0x00007f9819f19b15 in QWidgetLineControl::processKeyEvent(QKeyEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #15 0x00007f9819e8a19a in QLineEdit::keyPressEvent(QKeyEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #16 0x00007f981a57e452 in Utils::CompletingLineEdit::keyPressEvent(QKeyEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libUtils.so.1
      #17 0x00007f9819d822f4 in QWidget::event(QEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #18 0x00007f9819e90595 in QLineEdit::event(QEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #19 0x00007f9819d414dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #20 0x00007f9819d4646d in QApplication::notify(QObject*, QEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #21 0x00007f98189c66a3 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Core.so.5
      #22 0x00007f9819d9f163 in ?? () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #23 0x00007f9819d414dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #24 0x00007f9819d46640 in QApplication::notify(QObject*, QEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Widgets.so.5
      #25 0x00007f98189c66a3 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Core.so.5
      #26 0x00007f98194c4f4e in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Gui.so.5
      #27 0x00007f98194c9a65 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
         from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Gui.so.5
      #28 0x00007f98194aec4f in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
         from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Gui.so.5
      #29 0x00007f98119bf170 in ?? () from /home/ulf/Qt/Tools/QtCreator/bin/plugins/platforms/../../../lib/qtcreator/libQt5XcbQpa.so.5
      #30 0x00007f9816b8dc5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #31 0x00007f9816b8df48 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #32 0x00007f9816b8dffc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #33 0x00007f9818a1bae7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Core.so.5
      #34 0x00007f98189c4252 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Core.so.5
      #35 0x00007f98189cbd3d in QCoreApplication::exec() () from /home/ulf/Qt/Tools/QtCreator/bin/../lib/qtcreator/libQt5Core.so.5
      #36 0x0000000000409d42 in ?? ()
      #37 0x00007f98176d4b45 in __libc_start_main (main=0x4066f0, argc=1, argv=0x7fffdad51148, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
          stack_end=0x7fffdad51138) at libc-start.c:287
      #38 0x0000000000409e21 in ?? ()
      #39 0x00007fffdad51138 in ?? ()
      #40 0x000000000000001c in ?? ()
      #41 0x0000000000000001 in ?? ()
      #42 0x00007fffdad524c6 in ?? ()
      #43 0x0000000000000000 in ?? ()
      

      This one is triggered by something else, but I had switched off one of the two screens connected to the system shortly before and QXcbScreen::mapToNative probably does have something to do with screen resolution.

      Another one of which I don't have a stack trace prints a string of warnings before it segfaults:

      QPaintDevice::metrics: Device has no metric information                                                                                    
      QPainter::begin: Paint device returned engine == 0, type: 2
      QPainter::setRenderHint: Painter must be active to set rendering hints
      QPainter::translate: Painter not active
      QPainter::setPen: Painter not active
      QPainter::setBrush: Painter not active
      QPainter::end: Painter not active, aborted
      QPainter::begin: Paint device returned engine == 0, type: 2
      QPainter::setRenderHint: Painter must be active to set rendering hints
      QPainter::translate: Painter not active
      QPainter::setPen: Painter not active
      QPainter::setBrush: Painter not active
      QPainter::setPen: Painter not active
      QPainter::setBrush: Painter not active
      QPainter::end: Painter not active, aborted
      QPainter::begin: Paint device returned engine == 0, type: 2
      QPainter::setRenderHint: Painter must be active to set rendering hints
      QPainter::translate: Painter not active
      QPainter::setPen: Painter not active
      QPainter::setBrush: Painter not active
      QPainter::drawRects: Painter not active
      QPainter::setPen: Painter not active
      QPainter::setBrush: Painter not active
      QPainter::setBrush: Painter not active
      QPainter::setPen: Painter not active
      QPainter::setPen: Painter not active
      QPainter::end: Painter not active, aborted
      Segmentation fault
      

      This happened after or during a resolution change, where I mapped both connected displays to the same 1024x768 area.

        Attachments

          Issue Links

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

            Activity

              People

              Assignee:
              vestbo Tor Arne Vestbø
              Reporter:
              ulherman Ulf Hermann
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes