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

Changing the (only) active screen: Applications stop repainting, crashes on click exit

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Affects Version/s: 5.5.1
    • Fix Version/s: None
    • Component/s: QPA: X11/XCB
    • Labels:
      None
    • Environment:
    • Commits:
      b0b08cc0e4e38504d6b833702f7477aee4e2a192

      Description

      With Qt 5.5 (current git version, fdcea3a7ca), when I switch the only active screen from an external screen to the one of my laptop, the application starts to behave incorrectly. I've seen various symptoms:

      • It stops to re-draw. I will attach a screenshot. You can see the actual task bar in the bottom, and the "old" taskbar (the place on screen where it was on the smaller laptop screen, before it got moved to the larger external screen) in the middle. If I bring other windows to the foreground, and the minimize-restore the Qt5 window, it takes these other contents. This is with KWin 4 and compositing enabled.
      • It crashes when I click it. Sometimes, if I don't click but instead minimize-restore, it goes back to normal behavior.
      • It crashes on exit.

      Here's a backtrace of the crash-on-exit:

      #0  0x00007fffefbc775a in QXcbScreen::screen (this=0x0) at qxcbscreen.h:113
      #1  0x00007fffefbd1f46 in QXcbScreen::root (this=0x0) at qxcbscreen.h:114
      #2  0x00007fffefbf47d9 in QXcbWindow::handleClientMessageEvent (this=0x72cd00, event=0x7fffe4004150) at qxcbwindow.cpp:1926
      #3  0x00007fffefbd0162 in QXcbConnection::handleClientMessageEvent (this=0x675bf0, event=0x7fffe4004150) at qxcbconnection.cpp:1460
      #4  0x00007fffefbce63a in QXcbConnection::handleXcbEvent (this=0x675bf0, event=0x7fffe4004150) at qxcbconnection.cpp:1031
      #5  0x00007fffefbcfed2 in QXcbConnection::processXcbEvents (this=0x675bf0) at qxcbconnection.cpp:1423
      #6  0x00007fffefc3928c in QXcbConnection::qt_static_metacall (_o=0x675bf0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffe40043a0) at .moc/moc_qxcbconnection.cpp:187
      #7  0x00007ffff6bfa3f3 in QMetaCallEvent::placeMetaCall (this=0x7fffe40043c0, object=0x675bf0) at kernel/qobject.cpp:486
      #8  0x00007ffff6bfb4a4 in QObject::event (this=0x675bf0, e=0x7fffe40043c0) at kernel/qobject.cpp:1246
      #9  0x00007fffefbd1287 in QXcbConnection::event (this=0x675bf0, e=0x7fffe40043c0) at qxcbconnection.cpp:2019
      #10 0x00007ffff7746df0 in QApplicationPrivate::notify_helper (this=0x663860, receiver=0x675bf0, e=0x7fffe40043c0) at kernel/qapplication.cpp:3717
      #11 0x00007ffff7744566 in QApplication::notify (this=0x7fffffffdee0, receiver=0x675bf0, e=0x7fffe40043c0) at kernel/qapplication.cpp:3161
      #12 0x00007ffff6bc39ca in QCoreApplication::notifyInternal (this=0x7fffffffdee0, receiver=0x675bf0, event=0x7fffe40043c0) at kernel/qcoreapplication.cpp:965
      #13 0x00007ffff6bc76b3 in QCoreApplication::sendEvent (receiver=0x675bf0, event=0x7fffe40043c0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:224
      #14 0x00007ffff6bc4d03 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x6639d0) at kernel/qcoreapplication.cpp:1593
      #15 0x00007ffff6bc46b2 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1451
      #16 0x00007ffff6c38c54 in postEventSourceDispatch (s=0x6a0ec0) at kernel/qeventdispatcher_glib.cpp:271
      #17 0x00007ffff2aeec3d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #18 0x00007ffff2aeef20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #19 0x00007ffff2aeefcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #20 0x00007ffff6c3940f in QEventDispatcherGlib::processEvents (this=0x69f220, flags=...) at kernel/qeventdispatcher_glib.cpp:418
      #21 0x00007fffefc3a512 in QPAEventDispatcherGlib::processEvents (this=0x69f220, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:115
      #22 0x00007ffff6bc05ca in QEventLoop::processEvents (this=0x7fffffffdbc0, flags=...) at kernel/qeventloop.cpp:128
      #23 0x00007ffff6bc08a3 in QEventLoop::exec (this=0x7fffffffdbc0, flags=...) at kernel/qeventloop.cpp:204
      #24 0x00007ffff6bc40a4 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1229
      #25 0x00007ffff6fd0e5e in QGuiApplication::exec () at kernel/qguiapplication.cpp:1528
      #26 0x00007ffff7743f47 in QApplication::exec () at kernel/qapplication.cpp:2977
      #27 0x0000000000412b14 in main (argc=1, argv=0x7fffffffe008) at src/main.cpp:35
      

      And here's a backtrace of the crash-on-click:

      #0  0x00007fffefbe7fd4 in QXcbScreen::mapFromNative (this=0x0, pos=...) at qxcbscreen.cpp:281
      #1  0x00007fffefbf5bde in QXcbWindow::handleButtonPressEvent (this=0x7b4590, event_x=258, event_y=92, root_x=258, root_y=112, detail=1, modifiers=..., timestamp=653610978) at qxcbwindow.cpp:2139
      #2  0x00007fffefbf6324 in QXcbWindow::handleXIMouseEvent (this=0x7b4590, event=0x7fffe4004100) at qxcbwindow.cpp:2238
      #3  0x00007fffefc08174 in QXcbConnection::xi2HandleEvent (this=0x675bf0, event=0x7fffe4004100) at qxcbconnection_xi2.cpp:530
      #4  0x00007fffefbcec2d in QXcbConnection::handleXcbEvent (this=0x675bf0, event=0x7fffe4004100) at qxcbconnection.cpp:1084
      #5  0x00007fffefbcfed2 in QXcbConnection::processXcbEvents (this=0x675bf0) at qxcbconnection.cpp:1423
      #6  0x00007fffefc3928c in QXcbConnection::qt_static_metacall (_o=0x675bf0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffe40044d0) at .moc/moc_qxcbconnection.cpp:187
      #7  0x00007ffff6bfa3f3 in QMetaCallEvent::placeMetaCall (this=0x7fffe4004510, object=0x675bf0) at kernel/qobject.cpp:486
      #8  0x00007ffff6bfb4a4 in QObject::event (this=0x675bf0, e=0x7fffe4004510) at kernel/qobject.cpp:1246
      #9  0x00007fffefbd1287 in QXcbConnection::event (this=0x675bf0, e=0x7fffe4004510) at qxcbconnection.cpp:2019
      #10 0x00007ffff7746df0 in QApplicationPrivate::notify_helper (this=0x663860, receiver=0x675bf0, e=0x7fffe4004510) at kernel/qapplication.cpp:3717
      #11 0x00007ffff7744566 in QApplication::notify (this=0x7fffffffdee0, receiver=0x675bf0, e=0x7fffe4004510) at kernel/qapplication.cpp:3161
      #12 0x00007ffff6bc39ca in QCoreApplication::notifyInternal (this=0x7fffffffdee0, receiver=0x675bf0, event=0x7fffe4004510) at kernel/qcoreapplication.cpp:965
      #13 0x00007ffff6bc76b3 in QCoreApplication::sendEvent (receiver=0x675bf0, event=0x7fffe4004510) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:224
      #14 0x00007ffff6bc4d03 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x6639d0) at kernel/qcoreapplication.cpp:1593
      #15 0x00007ffff6bc46b2 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1451
      #16 0x00007ffff6c38c54 in postEventSourceDispatch (s=0x6a0ec0) at kernel/qeventdispatcher_glib.cpp:271
      #17 0x00007ffff2aeec3d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #18 0x00007ffff2aeef20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #19 0x00007ffff2aeefcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #20 0x00007ffff6c3940f in QEventDispatcherGlib::processEvents (this=0x69efd0, flags=...) at kernel/qeventdispatcher_glib.cpp:418
      #21 0x00007fffefc3a512 in QPAEventDispatcherGlib::processEvents (this=0x69efd0, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:115
      #22 0x00007ffff6bc05ca in QEventLoop::processEvents (this=0x7fffffffdbc0, flags=...) at kernel/qeventloop.cpp:128
      #23 0x00007ffff6bc08a3 in QEventLoop::exec (this=0x7fffffffdbc0, flags=...) at kernel/qeventloop.cpp:204
      #24 0x00007ffff6bc40a4 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1229
      #25 0x00007ffff6fd0e5e in QGuiApplication::exec () at kernel/qguiapplication.cpp:1528
      #26 0x00007ffff7743f47 in QApplication::exec () at kernel/qapplication.cpp:2977
      #27 0x0000000000412b14 in main (argc=1, argv=0x7fffffffe008) at src/main.cpp:35
      

        Attachments

          Issue Links

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

            Activity

              People

              Assignee:
              srutledg Shawn Rutledge
              Reporter:
              ralfjung Ralf Jung
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes