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

[REG 5.12.4] Instant segfault with HighDPI scaling and multiple screens

    XMLWordPrintable

Details

    • Linux/X11
    • 6d61b10 (qtbase/5.12, 19.6.2019, 5.12.4) 6d61b10f65cd276e009a02cec563cc469245e1f2 (qt/qtbase/5.12)

    Description

      When launching e.g. simplebrowser with QT_SCALE_FACTOR=2 and multiple screens, it crashes instantly.

      With other QtWebEngine projects I tested, they didn't crash immediately, but did as soon as they were moved to be visible on multiple screens.

      I'm guessing https://codereview.qt-project.org/c/qt/qtbase/+/251394 is to blame somehow.

      Stack:

      #0  0x00007ffff075c316 in QHighDpiScaling::mapPositionFromGlobal(QPoint const&, QPoint const&, QWindow const*) (pos=..., windowGlobalPosition=..., window=window@entry=0x555555d89680)
          at kernel/qhighdpiscaling.cpp:414
      #1  0x00007ffff072cac4 in QWindow::mapFromGlobal(QPoint const&) const (this=0x555555d89680, pos=...) at kernel/qwindow.cpp:2571
      #2  0x00007ffff14cccd0 in QQuickWindow::event(QEvent*) () at /usr/lib/libQt5Quick.so.5
      #3  0x00007ffff0d23da4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x5555555c2f50, receiver=receiver@entry=0x555555d89680, e=e@entry=0x7fffffffcff0)
          at kernel/qapplication.cpp:3737
      #4  0x00007ffff0d2b3c1 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffdb90, receiver=0x555555d89680, e=0x7fffffffcff0) at kernel/qapplication.cpp:3483
      #5  0x00007fffefc31ef9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555555d89680, event=0x7fffffffcff0)
          at ../../include/QtCore/5.12.4/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:322
      #6  0x00007fffef3ed2bc in QQuickWidget::event(QEvent*) () at /usr/lib/libQt5QuickWidgets.so.5
      #7  0x00007ffff7f63c21 in QtWebEngineCore::RenderWidgetHostViewQtDelegateWidget::event(QEvent*) (this=0x555555e60a90, event=0x7fffffffd460)
          at /tmp/makepkg/qt5-webengine-debug/src/qtwebengine-everywhere-src-5.12.4/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp:489
      #8  0x00007ffff0d23da4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x5555555c2f50, receiver=receiver@entry=0x555555e60a90, e=e@entry=0x7fffffffd460)
          at kernel/qapplication.cpp:3737
      #9  0x00007ffff0d2b3c1 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffdb90, receiver=0x555555e60a90, e=0x7fffffffd460) at kernel/qapplication.cpp:3483
      #10 0x00007fffefc31ef9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555555e60a90, event=0x7fffffffd460)
          at ../../include/QtCore/5.12.4/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:322
      #11 0x00007ffff0d2a3cd in QApplicationPrivate::dispatchEnterLeave(QWidget*, QWidget*, QPointF const&) (enter=enter@entry=0x555555e60a90, leave=leave@entry=0x0, globalPosF=...)
          at kernel/qapplication.cpp:2333
      #12 0x00007ffff0d2a772 in QApplicationPrivate::dispatchEnterLeave(QWidget*, QWidget*, QPointF const&) (enter=enter@entry=0x555555e60a90, leave=leave@entry=0x0, globalPosF=...)
          at kernel/qapplication.cpp:2256
      #13 0x00007ffff0d7e4a6 in QWidgetWindow::handleEnterLeaveEvent(QEvent*) (this=0x555555e1f6a0, event=0x7fffffffd810) at ../../include/QtGui/../../src/gui/kernel/qevent.h:98
      #14 0x00007ffff0d82b81 in QWidgetWindow::event(QEvent*) (event=0x7fffffffd810, this=0x555555e1f6a0) at kernel/qwidgetwindow.cpp:245
      #15 0x00007ffff0d82b81 in QWidgetWindow::event(QEvent*) (this=0x555555e1f6a0, event=0x7fffffffd810) at kernel/qwidgetwindow.cpp:224
      #16 0x00007ffff0d23da4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x5555555c2f50, receiver=receiver@entry=0x555555e1f6a0, e=e@entry=0x7fffffffd810)
          at kernel/qapplication.cpp:3737
      #17 0x00007ffff0d2b3c1 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffdb90, receiver=0x555555e1f6a0, e=0x7fffffffd810) at kernel/qapplication.cpp:3483
      #18 0x00007fffefc31ef9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555555e1f6a0, event=0x7fffffffd810)
          at ../../include/QtCore/5.12.4/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:322
      #19 0x00007ffff07225dc in QGuiApplicationPrivate::processEnterEvent(QWindowSystemInterfacePrivate::EnterEvent*) (e=0x555559ef6ba0) at /usr/include/c++/8.3.0/bits/atomic_base.h:390
      #20 0x00007ffff07225dc in QGuiApplicationPrivate::processEnterEvent(QWindowSystemInterfacePrivate::EnterEvent*) (e=0x555559ef6ba0) at kernel/qguiapplication.cpp:2253
      #21 0x00007ffff0727566 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x555559ef6ba0) at kernel/qguiapplication.cpp:1857
      #22 0x00007ffff070255c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1151
      #23 0x00007fffe51b9b7c in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at qxcbeventdispatcher.cpp:105
      #24 0x00007fffe9e3090f in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
      #25 0x00007fffe9e32869 in  () at /usr/lib/libglib-2.0.so.0
      #26 0x00007fffe9e328ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
      #27 0x00007fffefc87079 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5555555c8740, flags=...) at kernel/qeventdispatcher_glib.cpp:422
      #28 0x00007fffefc30abc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffdb10, flags=..., flags@entry=...)
          at ../../include/QtCore/../../src/corelib/global/qflags.h:140
      #29 0x00007fffefc38c46 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:120
      #30 0x000055555556f1eb in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at main.cpp:84
      

      I can't reproduce with other QtWidgets/qtquickcontrols examples, so it seems like this is QtWebEngine-specific somehow.

      Attachments

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

        Activity

          People

            sorvig Morten Sørvig
            the compiler Florian Bruhin
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes