lumina-desktop / lumina

Lumina Desktop Environment
http://lumina-desktop.org
BSD 3-Clause "New" or "Revised" License
530 stars 115 forks source link

Infinite loop in start menu #827

Open outpaddling opened 1 year ago

outpaddling commented 1 year ago

Aside from a few cosmetic issues, I've been experiencing one rather annoying issue on rare occasions. Upon clicking the Start menu, lumina-desktop gets stuck in an infinite loop. If I kill it, remove ~/.config/lumina*, and rebuild the config from scratch, everything is fine again for a while. Last time it happened, I used kill -ABRT lumina-desktop to generate a core file. The backtrace from lldb shows a cycle. Maybe this will provide some clues. If not, I can also reinstall Qt components with debug info to source code line #s.

lldb -c lumina-desktop.core lumina-desktop
bt
    frame #127159: 0x0000000800e9c904 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 244
    frame #127160: 0x0000000800e9de23 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 531
    frame #127161: 0x0000000802c2ebb0 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 176
    frame #127162: 0x0000000800ed3092 libQt5Widgets.so.5`QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) + 2034
    frame #127163: 0x0000000800ed3184 libQt5Widgets.so.5`QWidget::resize(QSize const&) + 100
    frame #127164: 0x00000008010327a3 libQt5Widgets.so.5`___lldb_unnamed_symbol15749 + 675
    frame #127165: 0x0000000801032b7c libQt5Widgets.so.5`QScrollArea::eventFilter(QObject*, QEvent*) + 76
    frame #127166: 0x0000000802c2ef09 libQt5Core.so.5`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 265
    frame #127167: 0x0000000800e9c904 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 244
    frame #127168: 0x0000000800e9de23 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 531
    frame #127169: 0x0000000802c2ebb0 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 176
    frame #127170: 0x0000000800ed3092 libQt5Widgets.so.5`QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) + 2034
    frame #127171: 0x0000000800ed3184 libQt5Widgets.so.5`QWidget::resize(QSize const&) + 100
    frame #127172: 0x00000008010327a3 libQt5Widgets.so.5`___lldb_unnamed_symbol15749 + 675
    frame #127173: 0x0000000801032b7c libQt5Widgets.so.5`QScrollArea::eventFilter(QObject*, QEvent*) + 76
    frame #127174: 0x0000000802c2ef09 libQt5Core.so.5`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 265
    frame #127175: 0x0000000800e9c904 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 244
    frame #127176: 0x0000000800e9de23 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 531
    frame #127177: 0x0000000802c2ebb0 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 176
    frame #127178: 0x0000000800ed3092 libQt5Widgets.so.5`QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) + 2034
    frame #127179: 0x0000000800ed3184 libQt5Widgets.so.5`QWidget::resize(QSize const&) + 100
    frame #127180: 0x00000008010327a3 libQt5Widgets.so.5`___lldb_unnamed_symbol15749 + 675
    frame #127181: 0x0000000801032b7c libQt5Widgets.so.5`QScrollArea::eventFilter(QObject*, QEvent*) + 76
    frame #127182: 0x0000000802c2ef09 libQt5Core.so.5`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 265
    frame #127183: 0x0000000800e9c904 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 244
    frame #127184: 0x0000000800e9de23 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 531
    frame #127185: 0x0000000802c2ebb0 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 176
    frame #127186: 0x0000000800ed3092 libQt5Widgets.so.5`QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) + 2034
    frame #127187: 0x0000000800ed3184 libQt5Widgets.so.5`QWidget::resize(QSize const&) + 100
    frame #127188: 0x00000008010327a3 libQt5Widgets.so.5`___lldb_unnamed_symbol15749 + 675
    frame #127189: 0x0000000800ed61ac libQt5Widgets.so.5`QWidget::event(QEvent*) + 1164
    frame #127190: 0x0000000800f7cc9b libQt5Widgets.so.5`QFrame::event(QEvent*) + 43
    frame #127191: 0x0000000802c2ef09 libQt5Core.so.5`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 265
    frame #127192: 0x0000000800e9c904 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 244
    frame #127193: 0x0000000800e9de23 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 531
    frame #127194: 0x0000000802c2ebb0 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 176
    frame #127195: 0x0000000800ed3092 libQt5Widgets.so.5`QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) + 2034
    frame #127196: 0x0000000800ed3358 libQt5Widgets.so.5`QWidget::setGeometry(QRect const&) + 264
    frame #127197: 0x0000000800f7e7f6 libQt5Widgets.so.5`QAbstractScrollAreaPrivate::layoutChildren_helper(bool*, bool*) + 2726
    frame #127198: 0x0000000800f805e4 libQt5Widgets.so.5`___lldb_unnamed_symbol14487 + 340
    frame #127199: 0x0000000802c5781d libQt5Core.so.5`QObject::event(QEvent*) + 765
    frame #127200: 0x0000000800ed6ff5 libQt5Widgets.so.5`QWidget::event(QEvent*) + 4821
    frame #127201: 0x0000000800f7cc9b libQt5Widgets.so.5`QFrame::event(QEvent*) + 43
    frame #127202: 0x0000000800e9c919 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 265
    frame #127203: 0x0000000800e9de23 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 531
    frame #127204: 0x0000000802c2ebb0 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 176
    frame #127205: 0x0000000802c2fb25 libQt5Core.so.5`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 485
    frame #127206: 0x0000000802c81269 libQt5Core.so.5`QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 73
    frame #127207: 0x000000080628aa34 libQt5XcbQpa.so.5`___lldb_unnamed_symbol3488 + 20
    frame #127208: 0x0000000802c2b4c6 libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 566
    frame #127209: 0x000000080101ab8e libQt5Widgets.so.5`___lldb_unnamed_symbol15636 + 206
    frame #127210: 0x00000008010814b5 libQt5Widgets.so.5`___lldb_unnamed_symbol16168 + 1109
    frame #127211: 0x0000000802c62fc8 libQt5Core.so.5`___lldb_unnamed_symbol9621 + 1480
    frame #127212: 0x0000000800f83142 libQt5Widgets.so.5`___lldb_unnamed_symbol14528 + 114
    frame #127213: 0x0000000800f82fb9 libQt5Widgets.so.5`___lldb_unnamed_symbol14526 + 233
    frame #127214: 0x0000000800f84112 libQt5Widgets.so.5`QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 290
    frame #127215: 0x000000080108199f libQt5Widgets.so.5`QToolButton::mouseReleaseEvent(QMouseEvent*) + 15
    frame #127216: 0x0000000800ed5ede libQt5Widgets.so.5`QWidget::event(QEvent*) + 446
    frame #127217: 0x000000080108218d libQt5Widgets.so.5`QToolButton::event(QEvent*) + 333
    frame #127218: 0x0000000800e9c919 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 265
    frame #127219: 0x0000000800e9f7b4 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 7076
    frame #127220: 0x0000000802c2ebb0 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 176
    frame #127221: 0x0000000800e9d2ec libQt5Widgets.so.5`QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) + 956
    frame #127222: 0x0000000800ef499d libQt5Widgets.so.5`___lldb_unnamed_symbol14030 + 2701
    frame #127223: 0x0000000800ef3590 libQt5Widgets.so.5`___lldb_unnamed_symbol14025 + 272
    frame #127224: 0x0000000800e9c919 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 265
    frame #127225: 0x0000000800e9de23 libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 531
    frame #127226: 0x0000000802c2ebb0 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 176
    frame #127227: 0x0000000801b5ec60 libQt5Gui.so.5`QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 3600
    frame #127228: 0x0000000801b431dc libQt5Gui.so.5`QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 220
    frame #127229: 0x000000080628aa49 libQt5XcbQpa.so.5`___lldb_unnamed_symbol3488 + 41
    frame #127230: 0x0000000802c2b4c6 libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 566
    frame #127231: 0x0000000802c2f24e libQt5Core.so.5`QCoreApplication::exec() + 142
    frame #127232: 0x000000000043017f lumina-desktop`___lldb_unnamed_symbol2981 + 655
    frame #127233: 0x00000000003a0670 lumina-desktop`___lldb_unnamed_symbol4271 + 256
outpaddling commented 1 year ago

This issue seems to have gone away on its own. I'm guessing it was a problem with one of the Lumina's dependencies.

outpaddling commented 1 month ago

The problem is back again. Below is a new backtrace from kill -ABRT.

This only seems to happen after resizing the start menu and logging out. After logging in again, the desktop freezes when opening the start menu.

Also, removing the folders from the favorites list seems to prevent the problem. ( Lumina automatically adds Documents and a couple others to the start menu favorites. )

FreeBSD moray.acadix  bacon ~ 1005: lldb -c lumina-desktop.core /usr/local/bin/lumina-desktop |& tee lldb
(lldb) bt
[snip]
exit
FreeBSD moray.acadix  bacon ~ 1006: head -50 lldb
(lldb) target create "/usr/local/bin/lumina-desktop" --core "lumina-desktop.core"
Core file '/home/bacon/lumina-desktop.core' (x86_64) was loaded.
* thread #1, name = 'lumina-desktop', stop reason = signal SIGABRT
  * frame #0: 0x000000082d7dd4aa libQt5Gui.so.5`___lldb_unnamed_symbol12823 + 474
    frame #1: 0x000000082d7e748d libQt5Gui.so.5`___lldb_unnamed_symbol12831 + 3181
    frame #2: 0x000000082d7e6717 libQt5Gui.so.5`___lldb_unnamed_symbol12830 + 1015
    frame #3: 0x000000082d7e9f2f libQt5Gui.so.5`QTextDocumentLayout::doLayout(int, int, int) + 415
    frame #4: 0x000000082d7e9a58 libQt5Gui.so.5`QTextDocumentLayout::documentChanged(int, int, int) + 760
    frame #5: 0x000000082bdc15cb libQt5Widgets.so.5`___lldb_unnamed_symbol15278 + 1899
    frame #6: 0x000000082bdc18e2 libQt5Widgets.so.5`QLabel::heightForWidth(int) const + 34
    frame #7: 0x000000082bcb93ab libQt5Widgets.so.5`QWidgetItem::heightForWidth(int) const + 123
    frame #8: 0x000000082bcb9e82 libQt5Widgets.so.5`QWidgetItemV2::heightForWidth(int) const + 162
    frame #9: 0x000000082bcac050 libQt5Widgets.so.5`___lldb_unnamed_symbol13774 + 224
    frame #10: 0x000000082bcac676 libQt5Widgets.so.5`non-virtual thunk to QBoxLayout::heightForWidth(int) const + 102
    frame #11: 0x000000082bcb66f7 libQt5Widgets.so.5`QLayout::totalSizeHint() const + 263
    frame #12: 0x000000082bd6fa72 libQt5Widgets.so.5`QFrame::sizeHint() const + 66
    frame #13: 0x000000082bcb98c6 libQt5Widgets.so.5`QWidgetItemV2::updateCacheIfNecessary() const + 54
    frame #14: 0x000000082bcb9d55 libQt5Widgets.so.5`QWidgetItemV2::maximumSize() const + 85
    frame #15: 0x000000082bcaad8b libQt5Widgets.so.5`___lldb_unnamed_symbol13773 + 443
    frame #16: 0x000000082bcac3db libQt5Widgets.so.5`non-virtual thunk to QBoxLayout::sizeHint() const + 27
    frame #17: 0x000000082bcb66d8 libQt5Widgets.so.5`QLayout::totalSizeHint() const + 232
    frame #18: 0x000000082bcb89b7 libQt5Widgets.so.5`qSmartMinSize(QWidget const*) + 23
    frame #19: 0x000000082be21d6f libQt5Widgets.so.5`___lldb_unnamed_symbol15915 + 159
    frame #20: 0x000000082be223eb libQt5Widgets.so.5`QScrollArea::eventFilter(QObject*, QEvent*) + 75
    frame #21: 0x0000000832e23148 libQt5Core.so.5`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 264
    frame #22: 0x000000082bc99b2f libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 239
    frame #23: 0x000000082bc9aeee libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 526
    frame #24: 0x0000000832e22df1 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 177
    frame #25: 0x000000082bcd02af libQt5Widgets.so.5`QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) + 1695
    frame #26: 0x000000082bcd0383 libQt5Widgets.so.5`QWidget::resize(QSize const&) + 99
    frame #27: 0x000000082be21efc libQt5Widgets.so.5`___lldb_unnamed_symbol15915 + 556
    frame #28: 0x000000082be223eb libQt5Widgets.so.5`QScrollArea::eventFilter(QObject*, QEvent*) + 75
    frame #29: 0x0000000832e23148 libQt5Core.so.5`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 264
    frame #30: 0x000000082bc99b2f libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 239
    frame #31: 0x000000082bc9aeee libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 526
    frame #32: 0x0000000832e22df1 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 177
    frame #33: 0x000000082bcd02af libQt5Widgets.so.5`QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) + 1695
    frame #34: 0x000000082bcd0383 libQt5Widgets.so.5`QWidget::resize(QSize const&) + 99
    frame #35: 0x000000082be21efc libQt5Widgets.so.5`___lldb_unnamed_symbol15915 + 556
    frame #36: 0x000000082be223eb libQt5Widgets.so.5`QScrollArea::eventFilter(QObject*, QEvent*) + 75
    frame #37: 0x0000000832e23148 libQt5Core.so.5`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 264
    frame #38: 0x000000082bc99b2f libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 239
    frame #39: 0x000000082bc9aeee libQt5Widgets.so.5`QApplication::notify(QObject*, QEvent*) + 526
    frame #40: 0x0000000832e22df1 libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 177
    frame #41: 0x000000082bcd02af libQt5Widgets.so.5`QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) + 1695
    frame #42: 0x000000082bcd0383 libQt5Widgets.so.5`QWidget::resize(QSize const&) + 99
    frame #43: 0x000000082be21efc libQt5Widgets.so.5`___lldb_unnamed_symbol15915 + 556
    frame #44: 0x000000082be223eb libQt5Widgets.so.5`QScrollArea::eventFilter(QObject*, QEvent*) + 75
    frame #45: 0x0000000832e23148 libQt5Core.so.5`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 264
    frame #46: 0x000000082bc99b2f libQt5Widgets.so.5`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 239
q5sys commented 1 month ago

Nothing has changed in the start menu source code, so i'm pretty sure its not something with Lumina. It might be a weird behavior coming from a change in qt. Have you updated recently? I only use the classic application menu, so I don't have any experience with the favorites thing in the other start menu options.

outpaddling commented 1 month ago

I ran updates yesterday, but I don't think there were any Qt5 updates. There were a few Xorg updates. Mainly wanted to post the workaround for the benefit of others. Any work happening on Qt6, BTW?