Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
6.6.0
-
None
-
OS: Archlinux 6.6.1-zen1-1-zen
WM: Wayfire or Hyprland
-
-
cfaae5d91 (dev), aae65c885 (6.6)
Description
qBittorrent crash:
reproduce:
- Left-click on View to open the menu.
- Hover the mouse over 'Lock qBittorrent' to expand the sub-menu.
- Keep the sub-menu open, move the mouse to the top menu bar, and the program crashes.
log:
qt.qpa.wayland: setGrabPopup called with a parent, QtWaylandClient::QWaylandXdgSurface(0x555dc242c570) which does not match the current topmost grabbing popup, QtWaylandClient::QWaylandXdgSurface(0x555dc26c7f90) According to the xdg-shell protocol, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly because xdg-shell mandate that child popups close before parents xdg_wm_base@3: error 2: xdg_popup was destroyed while it was not the topmost popup The Wayland connection experienced a fatal error: Protocol error
0# getStacktrace[abi:cxx11]() in qbittorrent 1# 0x0000555DC0F9AE17 in qbittorrent 2# 0x00007FBF5E25C710 in /usr/lib/libc.so.6 3# QtWaylandClient::QWaylandXdgSurface::setGrabPopup(QtWaylandClient::QWaylandWindow*, QtWaylandClient::QWaylandInputDevice*, int) in /usr/lib/qt6/plugins/wayland-shell-integration/libxdg-shell.so 4# QtWaylandClient::QWaylandXdgSurface::QWaylandXdgSurface(QtWaylandClient::QWaylandXdgShell*, xdg_surface*, QtWaylandClient::QWaylandWindow*) in /usr/lib/qt6/plugins/wayland-shell-integration/libxdg-shell.so 5# QtWaylandClient::QWaylandXdgShellIntegration::createShellSurface(QtWaylandClient::QWaylandWindow*) in /usr/lib/qt6/plugins/wayland-shell-integration/libxdg-shell.so 6# QtWaylandClient::QWaylandWindow::initWindow() in /usr/lib/qt6/plugins/platforms/../../../libQt6WaylandClient.so.6 7# QtWaylandClient::QWaylandWindow::setVisible(bool) in /usr/lib/qt6/plugins/platforms/../../../libQt6WaylandClient.so.6 8# QWidgetPrivate::show_sys() in /usr/lib/libQt6Widgets.so.6 9# QWidgetPrivate::show_helper() in /usr/lib/libQt6Widgets.so.6 10# QWidgetPrivate::setVisible(bool) in /usr/lib/libQt6Widgets.so.6 11# 0x00007FBF60730D0B in /usr/lib/libQt6Widgets.so.6 12# QMenu::popup(QPoint const&, QAction*) in /usr/lib/libQt6Widgets.so.6 13# 0x00007FBF607390EC in /usr/lib/libQt6Widgets.so.6 14# 0x00007FBF607395E0 in /usr/lib/libQt6Widgets.so.6 15# QWidget::event(QEvent*) in /usr/lib/libQt6Widgets.so.6 16# QApplicationPrivate::notify_helper(QObject*, QEvent*) in /usr/lib/libQt6Widgets.so.6 17# QApplication::notify(QObject*, QEvent*) in /usr/lib/libQt6Widgets.so.6 18# QCoreApplication::notifyInternal2(QObject*, QEvent*) in /usr/lib/libQt6Core.so.6 19# 0x00007FBF6072F753 in /usr/lib/libQt6Widgets.so.6 20# QMenu::mouseMoveEvent(QMouseEvent*) in /usr/lib/libQt6Widgets.so.6 21# QWidget::event(QEvent*) in /usr/lib/libQt6Widgets.so.6 22# QApplicationPrivate::notify_helper(QObject*, QEvent*) in /usr/lib/libQt6Widgets.so.6 23# QApplication::notify(QObject*, QEvent*) in /usr/lib/libQt6Widgets.so.6 24# QCoreApplication::notifyInternal2(QObject*, QEvent*) in /usr/lib/libQt6Core.so.6 25# QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) in /usr/lib/libQt6Widgets.so.6 26# 0x00007FBF605D6EC6 in /usr/lib/libQt6Widgets.so.6 27# 0x00007FBF605D7CC0 in /usr/lib/libQt6Widgets.so.6 28# QApplicationPrivate::notify_helper(QObject*, QEvent*) in /usr/lib/libQt6Widgets.so.6 29# QCoreApplication::notifyInternal2(QObject*, QEvent*) in /usr/lib/libQt6Core.so.6 30# QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) in /usr/lib/libQt6Gui.so.6 31# QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) in /usr/lib/libQt6Gui.so.6 32# 0x00007FBF5FFE5D84 in /usr/lib/libQt6Gui.so.6 33# 0x00007FBF5DFE8F69 in /usr/lib/libglib-2.0.so.0 34# 0x00007FBF5E047327 in /usr/lib/libglib-2.0.so.0 35# g_main_context_iteration in /usr/lib/libglib-2.0.so.0 36# QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in /usr/lib/libQt6Core.so.6 37# QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) in /usr/lib/libQt6Core.so.6 38# QCoreApplication::exec() in /usr/lib/libQt6Core.so.6 39# Application::exec() in qbittorrent 40# main in qbittorrent 41# 0x00007FBF5E245CD0 in /usr/lib/libc.so.6 42# __libc_start_main in /usr/lib/libc.so.6 43# _start in qbittorrent
The related issue:
https://github.com/qbittorrent/qBittorrent/issues/19896
telegram-desktop crash:
reproduce:
- Open the menu by right-clicking in the input box.
- Hover the mouse over 'Formatting' or 'Spelling' to expand the sub-menu.
- Keep the sub-menu open, move the mouse to the input box and left-click, then the program crashes.
log:
qt.qpa.wayland: setGrabPopup called with a parent, QtWaylandClient::QWaylandXdgSurface(0x7f5d2d62bb60) which does not match the current topmost grabbing popup, QtWaylandClient::QWaylandXdgSurface(0x7f5cd16b4640) According to the xdg-shell protocol, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly because xdg-shell mandate that child popups close before parents xdg_wm_base@3: error 2: xdg_popup was destroyed while it was not the topmost popup qt.qpa.wayland: Could not create EGL surface (EGL error 0x3000)The Wayland connection experienced a fatal error: Protocol error
The related issue:
https://github.com/telegramdesktop/tdesktop/issues/26887
Additional context:
- Testing qBittorrent under QT 6.5.2, it seems that this issue does not occur.
- This issue is reproducible in both Wayfire and Hyprland.
Attachments
Issue Links
- relates to
-
QTBUG-124561 Qt.labs.platform context Menu appears out of the app window on Gnome/wayland
- Closed