lxqt / lxqt-panel

The LXQt desktop panel
https://lxqt-project.org
GNU Lesser General Public License v2.1
193 stars 135 forks source link

Coredump on calendar with Qt.6.8 #2146

Closed stefonarch closed 1 month ago

stefonarch commented 1 month ago
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/bin/lxqt-panel'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007213adbaa7e1 in QObject::deleteLater() () from /usr/lib/libQt6Core.so.6
[Current thread is 1 (Thread 0x7213aa542980 (LWP 883137))]
(gdb) where
#0  0x00007213adbaa7e1 in QObject::deleteLater() () at /usr/lib/libQt6Core.so.6
#1  0x00006325353b1e1d in ??? ()
#2  0x00007213adbb2229 in ??? () at /usr/lib/libQt6Core.so.6
#3  0x00006325353b875b in ??? ()
#4  0x00007213aecfe31a in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt6Widgets.so.6
#5  0x00007213adb585a8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#6  0x00007213aed4b65e in QWidgetPrivate::handleClose(QWidgetPrivate::CloseMode) () at /usr/lib/libQt6Widgets.so.6
#7  0x00007213aed69dd9 in ??? () at /usr/lib/libQt6Widgets.so.6
#8  0x00007213ae1ef326 in QWindow::event(QEvent*) () at /usr/lib/libQt6Gui.so.6
#9  0x00007213aecfe31a in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt6Widgets.so.6
#10 0x00007213adb585a8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#11 0x00007213ae18d524 in QGuiApplicationPrivate::processCloseEvent(QWindowSystemInterfacePrivate::CloseEvent*) ()
    at /usr/lib/libQt6Gui.so.6
#12 0x00007213ae201284 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib/libQt6Gui.so.6
#13 0x00007213ae64da14 in ??? () at /usr/lib/libQt6Gui.so.6
#14 0x00007213ad90d559 in ??? () at /usr/lib/libglib-2.0.so.0
#15 0x00007213ad970157 in ??? () at /usr/lib/libglib-2.0.so.0
#16 0x00007213ad90ca55 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#17 0x00007213addbf71d in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib/libQt6Core.so.6
#18 0x00007213adb64566 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#19 0x00007213adb59a2f in QCoreApplication::exec() () at /usr/lib/libQt6Core.so.6
#20 0x00006325352f7218 in ??? ()
#21 0x00007213ad434e08 in ??? () at /usr/lib/libc.so.6
#22 0x00007213ad434ecc in __libc_start_main () at /usr/lib/libc.so.6
#23 0x00006325352f7a95 in _start ()
(gdb) 
  1. Open calendar, leave open and wait some seconds
  2. Click on a application window
  3. Panel restarts
System Information
tsujan commented 1 month ago

I can't reproduce it with Qt 6.8.0. Some info is missing. I tested under kwin_wayland.

tsujan commented 1 month ago

I recompiled the panel against Qt 6.8 but don't think it can make any difference. This time, I tested in different sessions:

Now, this is definitely a regression in Qt 6.8. There's no trace of lxqt-panel in the backtrace.

But there's no trace of Wayland in the backtrace either. Hence, the necessity of testing under X11 and without KWin.

EDIT: My wild guess is that this issue and https://github.com/lxqt/lxqt-panel/issues/2145 are caused by the same regressive codes about popups in Qt 6.8.

stefonarch commented 1 month ago

On my test account it happens only when clicking inside windows (labwc), on my account (Hyprland) also when clicking in a empty space on the panel.

I can't login in x11 for some xinit error/xserver error I found, have no time to investigate atm.

stefonarch commented 1 month ago

On x11 I can't reproduce it (openbox).

tsujan commented 1 month ago

On x11 I can't reproduce it (openbox).

That's good, and a little strange.

tsujan commented 1 month ago

This isn't just about the calendar; the crash also happens with the middle-click popup (when there's more that one time zone).

tsujan commented 1 month ago

Who said this is a Qt bug? :) Will make a PR to fix it.

I remembered similar cases where deleteLater() caused crashes under Wayland (https://github.com/lxqt/lxqt-notificationd/pull/375 and https://github.com/lxqt/lximage-qt/pull/666). Here deleteLater() can be avoided in another way.