https://bugs.kde.org/show_bug.cgi?id=504786

            Bug ID: 504786
           Summary: Segfault in Keyboard Shortcut Settings
    Classification: Applications
           Product: kolourpaint
      Version First 25.04.1
       Reported In:
          Platform: Other
                OS: Other
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: kolourpaint-supp...@lists.sourceforge.net
          Reporter: dillonotto...@gmail.com
  Target Milestone: ---

SUMMARY

Minimizing the overall dropdown in the keyboard shortcut menu can lead to a
segfault when the individual menus are expanded. 

This seems like it may be a race condition, as it reproduces more frequently
for me in an increased latency environment (i.e. on a VM with less resources). 

STEPS TO REPRODUCE
1. Settings > Configure Keyboard Shortcuts
2. Expand Add Row Drop Down
3. Minimize KolourPaint dropdown

Note: If instead of minimizing the KolourPaint dropdown, you minimize the
action dropdown, it leads to graphical glitches where the dropdowns are not
closed cleanly. 

OBSERVED RESULT
KolourPaint sometimes crashes with a segfault

VIDEO
https://youtu.be/ISs_mBWJWCw

BACKTRACE
Thread 1 "kolourpaint" received signal SIGSEGV, Segmentation fault.
0x00007ffff6a6f0ee in QAbstractItemView::model() const ()
   from /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
(gdb) bt
#0  0x00007ffff6a6f0ee in QAbstractItemView::model() const ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#1  0x00007ffff6b0d695 in QTreeWidgetItem::treeModel(QTreeWidget*) const ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#2  0x00007ffff6b0d6d0 in QTreeWidgetItem::executePendingSort() const ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#3  0x00007ffff6b0d906 in ??? ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#4  0x00007ffff7f4d956 in KShortcutsEditorDelegate::itemCollapsed
        (this=0x555556086550, index=...)
        at /home/guifuzz/kde/src/kxmlgui/src/kshortcutseditordelegate.cpp:207
#5  0x00007ffff53de038 in ??? ()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#6  0x00007ffff6af4509 in QTreeView::collapsed(QModelIndex const&) ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#7  0x00007ffff6afd7f5 in QTreeViewPrivate::collapse(int, bool) ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#8  0x00007ffff6b012b2 in QTreeViewPrivate::expandOrCollapseItemAtPos(QPoint
const&) ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#9  0x00007ffff6b0668f in QTreeView::mousePressEvent(QMouseEvent*) ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#10 0x00007ffff67efdce in QWidget::event(QEvent*) ()
--Type <RET> for more, q to quit, c to continue without paging--c
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#11 0x00007ffff6882426 in QFrame::event(QEvent*) ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#12 0x00007ffff537b9c6 in
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) ()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#13 0x00007ffff67903e5 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
        ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#14 0x00007ffff6799028 in QApplication::notify(QObject*, QEvent*) ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#15 0x00007ffff537bcaa in QCoreApplication::notifyInternal2(QObject*, QEvent*)
        () at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#16 0x00007ffff679836d in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#17 0x00007ffff68037b7 in ??? ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#18 0x00007ffff6806473 in ??? ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#19 0x00007ffff67903f6 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
        ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#20 0x00007ffff537bcaa in QCoreApplication::notifyInternal2(QObject*, QEvent*)
        () at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#21 0x00007ffff5be58b8 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Gui.so.6
#22 0x00007ffff5c48aac in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Gui.so.6
#23 0x00007fffecd9fb9e in ??? ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6
#24 0x00007ffff4519397 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007ffff4579dc7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007ffff45188b3 in g_main_context_iteration ()
        at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ffff565591e in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#28 0x00007ffff5388fe2 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#29 0x00007ffff6a038e5 in QDialog::exec() ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#30 0x00007ffff7f45df3 in KShortcutsDialog::configure
        (this=<optimized out>, saveSettings=<optimized out>)
        at /home/guifuzz/kde/src/kxmlgui/src/kshortcutsdialog.cpp:218
#31 0x0000555555643c54 in kpMainWindow::slotKeyBindings (this=0x555555c4de30)
        at
/home/guifuzz/kde/src/kolourpaint/mainWindow/kpMainWindow_Settings.cpp:131
#32 0x00007ffff53de403 in ??? ()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#33 0x00007ffff6021066 in QAction::triggered(bool) ()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Gui.so.6
#34 0x00007ffff602402d in QAction::activate(QAction::ActionEvent) ()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Gui.so.6
#35 0x00007ffff6969df5 in ??? ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#36 0x00007ffff69720c3 in ??? ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#37 0x00007ffff67efdce in QWidget::event(QEvent*) ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#38 0x00007ffff67903f6 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
        ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#39 0x00007ffff6799028 in QApplication::notify(QObject*, QEvent*) ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#40 0x00007ffff537bcaa in QCoreApplication::notifyInternal2(QObject*, QEvent*)
        () at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#41 0x00007ffff679836d in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#42 0x00007ffff680410a in ??? ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#43 0x00007ffff6806473 in ??? ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#44 0x00007ffff67903f6 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
        ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Widgets.so.6
#45 0x00007ffff537bcaa in QCoreApplication::notifyInternal2(QObject*, QEvent*)
        () at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#46 0x00007ffff5be58b8 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Gui.so.6
#47 0x00007ffff5c48aac in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Gui.so.6
#48 0x00007fffecd9fb9e in ??? ()
        at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6XcbQpa.so.6
#49 0x00007ffff4519397 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007ffff4579dc7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#51 0x00007ffff45188b3 in g_main_context_iteration ()
        at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007ffff565591e in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#53 0x00007ffff5388fe2 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#54 0x00007ffff5385166 in QCoreApplication::exec() ()
        at /home/guifuzz/GUIFuzzBenchmarks/Qt/6.8.1/gcc_64/lib/libQt6Core.so.6
#55 0x0000555555602378 in main (argc=1, argv=<optimized out>)
        at /home/guifuzz/kde/src/kolourpaint/kolourpaint.cpp:126

VERSIONS
This was reproduced on the latest version built from source and the current
snap.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to