Bug 470348 - Segfault when manipulating configuration
Summary: Segfault when manipulating configuration
Status: RESOLVED WORKSFORME
Alias: None
Product: kate
Classification: Applications
Component: general (other bugs)
Version First Reported In: 22.12.3
Platform: Kubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: KWrite Developers
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-05-28 08:58 UTC by Peter J. Mello
Modified: 2023-08-21 03:45 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter J. Mello 2023-05-28 08:58:41 UTC
Application: kate (22.12.3)

Qt Version: 5.15.8
Frameworks Version: 5.106.0
Operating System: Linux 6.2.0-23-generic x86_64
Windowing System: X11
Distribution: Ubuntu 23.04
DrKonqi: 5.27.5 [KCrashBackend]

-- Information about the crash:
Kate seems to be crashing whenever I make adjustments to several settings at one time, however if I only adjust one or two items and then click OK, it behaves as expected. This even extends to resizing various panels in the app, where if (for instance) I use the mouse to drag the divider between the editor and the Filesystem plugin to alter the width of the plugin bar once, I can continue editing without incident. However if over the course of a single instance I resize the plugin bar four or five times, almost invariably it will segfault the instant that I release the mouse button. I examined the permissions on every config folder I'm aware of Kate/KWrite having and found nothing untowards, nor are the drives they reside on experiencing any I/O load that might impede the recording of such ephemeral config changes. This one has me stumped.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Kate (kate), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f273673522b in QStandardItemModel::dropMimeData(QMimeData const*, Qt::DropAction, int, int, QModelIndex const&) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#5  0x00007f2736de355b in QAbstractItemView::dropEvent(QDropEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x00007f2736baec28 in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007f2736c5b792 in QFrame::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007f2735cbaba3 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007f2736b6bf82 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007f2736b75006 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007f2735cbae38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007f2736bca9d0 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007f2736bcb707 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007f2736b6bf92 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007f2735cbae38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007f273634418c in QGuiApplicationPrivate::processDrop(QWindow*, QMimeData const*, QPoint const&, QFlags<Qt::DropAction>, QFlags<Qt::MouseButton>, QFlags<Qt::KeyboardModifier>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#17 0x00007f2736315d30 in QWindowSystemInterface::handleDrop(QWindow*, QMimeData const*, QPoint const&, QFlags<Qt::DropAction>, QFlags<Qt::MouseButton>, QFlags<Qt::KeyboardModifier>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#18 0x00007f272fc6204b in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#19 0x00007f272fc65fb8 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#20 0x00007f2736382764 in QBasicDrag::eventFilter(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#21 0x00007f2735cbaa7e in QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007f2736b6bfd0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f2735cbae38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007f273634240d in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#25 0x00007f27363164bc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#26 0x00007f272fc5054e in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#27 0x00007f2733c6149d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007f2733cbc178 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f2733c601b0 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007f2735d14e7a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007f2735cb97cb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007f2736381d87 in QBasicDrag::drag(QDrag*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#33 0x00007f273637f1fd in QDragManager::drag(QDrag*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#34 0x00007f273637f538 in QDrag::exec(QFlags<Qt::DropAction>, Qt::DropAction) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#35 0x00007f2736df0c29 in QAbstractItemView::startDrag(QFlags<Qt::DropAction>) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007f2736def419 in QAbstractItemView::mouseMoveEvent(QMouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007f2736baec28 in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007f2736c5b792 in QFrame::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007f2735cbaba3 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#40 0x00007f2736b6bf82 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007f2736b74612 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007f2735cbae38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#43 0x00007f2736b72712 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007f2736bc81cc in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007f2736bcb590 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007f2736b6bf92 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007f2735cbae38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#48 0x00007f273634240d in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#49 0x00007f27363164bc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#50 0x00007f272fc5054e in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#51 0x00007f2733c6149d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007f2733cbc178 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007f2733c601b0 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007f2735d14e7a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#55 0x00007f2735cb97cb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#56 0x00007f2735cc1c1a in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#57 0x000055b23e8c9388 in ?? ()
#58 0x00007f2735223a90 in __libc_start_call_main (main=main@entry=0x55b23e8c7ef0, argc=argc@entry=2, argv=argv@entry=0x7ffd8d65a538) at ../sysdeps/nptl/libc_start_call_main.h:58
#59 0x00007f2735223b49 in __libc_start_main_impl (main=0x55b23e8c7ef0, argc=2, argv=0x7ffd8d65a538, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd8d65a528) at ../csu/libc-start.c:360
#60 0x000055b23e8cb795 in ?? ()
[Inferior 1 (process 2382654) detached]

Reported using DrKonqi
Comment 1 Christoph Cullmann 2023-07-22 18:54:30 UTC
The tab overlay via 

QWidget *tabForToolView(QWidget *view, KTextEditor::MainWindow *mainWindow) {
    QWidget *tab = nullptr;
    QMetaObject::invokeMethod(mainWindow->parent(), "tabForToolView", Qt::DirectConnection, Q_RETURN_ARG(QWidget *, tab), Q_ARG(QWidget *, view));
    return tab;
}

That is deleted on move and then we use invalid pointers.
Comment 2 Christoph Cullmann 2023-07-22 20:18:18 UTC
Sorry, that comment was for bug 472507.
I can not reproduce this and the backtrace shows no Kate code.
Please retry with e.g. Kate 23.04 or later.
Comment 3 Bug Janitor Service 2023-08-06 03:45:03 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 4 Bug Janitor Service 2023-08-21 03:45:18 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!