Bug 493410 - crash from consecutive `ctrl+.` definition navigations of functions/structures/variables
Summary: crash from consecutive `ctrl+.` definition navigations of functions/structure...
Status: REPORTED
Alias: None
Product: kdevelop
Classification: Applications
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2024-09-20 18:55 UTC by John Robertson
Modified: 2024-09-20 19:03 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Robertson 2024-09-20 18:55:14 UTC
Application: kdevelop (5.12.230805 (23.08.5))

Qt Version: 5.15.13
Frameworks Version: 5.115.0
Operating System: Linux 6.8.0-45-generic x86_64
Windowing System: X11
Distribution: Ubuntu 24.04.1 LTS
DrKonqi: 5.27.11 [KCrashBackend]

-- Information about the crash:
* not sure what is realated to the crash, but will provide as much detail as possible in the following steps to reproduce:
1. Perform a build of the project (either 'F8' or from the project side-bar 'build' menu button).
2. Pop the build window out of the dock and move and size it beside the KDevelop main window.
3. click on several error or warning messages to bring up source files.  I don't know if this is related, but the crash usuall happens after several builds.  For example, turn on a much higher warning level, and navigate through several warnings across different source files.
4. from a the source files, use the mouse hover to bring up the popup definitions and declarations of various variables and function calls and parameters.  I don't know if this is a required step to the crash, but it does seem associated.  Meaning it doesn't seem to crash if I don't hover for info, and does seem to crash when I do hover ahead of the consecutive `ctrl+.` navigations.
5. mouse click to set the focus on a variable to a structure.
6. press `ctrl+.` to navigate to the definition of the variable/structure/function; this will typically be the structure where the variable is instantiated (e.g. a structure declared static and instantiated).  It is more consisten to start with a peripheral variable and navigate up from the variable to the larger structure/class definitions.
7. then select another variable/structure/function/class declaration and press `Ctrl+.`.
8. this is supposed to navigate to the definition of the variable/structure/function/class , but will often crash instead.
9. if it does not crash, go through another `Ctrl+.` navigation from the presented file to another variable/structure/function/class , …

In other words, it seems to crash from repeated consecutive `ctrl+.` navigations to variable/structure/function/class definitions.

The crash can be reproduced sometimes.

-- Backtrace:
Application: KDevelop (kdevelop), signal: Segmentation fault

[KCrash Handler]
#4  0x00007006827d48e0 in QPixmap::devicePixelRatio() const () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#5  0x0000700670737108 in Oxygen::TileSet::render(QRect const&, QPainter*, QFlags<Oxygen::TileSet::Tile>) const () at /lib/x86_64-linux-gnu/liboxygenstyle5.so.5
#6  0x00007006707dee71 in ??? () at /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/oxygen.so
#7  0x0000700670799968 in ??? () at /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/oxygen.so
#8  0x0000700682fb0df8 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x0000700682f6bd45 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007006822d8118 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x0000700682fa8aee in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x0000700682fa94a9 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x0000700682faa91d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x0000700682faa770 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x0000700682faa770 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x0000700682faa770 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x0000700682faa770 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x0000700682faa770 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x0000700682fa90c3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x0000700682faa91d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x0000700682fa90c3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x0000700682faa91d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x0000700682fa90c3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x0000700682faa91d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x0000700682fa90c3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x0000700682faa91d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x0000700682fa90c3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x0000700682f7ddc8 in ??? () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x0000700682fb146c in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x0000700682f6bd45 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007006822d8118 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007006822db94b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x0000700682335c0f in ??? () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x000070067e1145b5 in g_main_dispatch (context=0x70066c000ed0) at ../../../glib/gmain.c:3344
#35 0x000070067e173717 in g_main_context_dispatch_unlocked (context=0x70066c000ed0) at ../../../glib/gmain.c:4152
#36 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x70066c000ed0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4217
#37 0x000070067e113a53 in g_main_context_iteration (context=0x70066c000ed0, may_block=1) at ../../../glib/gmain.c:4282
#38 0x0000700682335279 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#39 0x00007006822d6a7b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#40 0x00007006822df3e8 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#41 0x00005edc884d248c in ??? ()
#42 0x000070068182a1ca in __libc_start_call_main (main=main@entry=0x5edc884cd890, argc=argc@entry=2, argv=argv@entry=0x7ffc82abdb38) at ../sysdeps/nptl/libc_start_call_main.h:58
#43 0x000070068182a28b in __libc_start_main_impl (main=0x5edc884cd890, argc=2, argv=0x7ffc82abdb38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc82abdb28) at ../csu/libc-start.c:360
#44 0x00005edc884d2fd5 in ??? ()
[Inferior 1 (process 8090) detached]

Reported using DrKonqi
Comment 1 John Robertson 2024-09-20 19:03:33 UTC
Here is the console output:

qrc:/ui/LoginPage.qml:104: TypeError: Property 'length' of object j is not a function
qrc:/ui/LoginPage.qml:104: TypeError: Property 'length' of object jr is not a function
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
qrc:/ui/LoginPage.qml:104: TypeError: Type error
org.kde.drkonqi.bugzilla: APIException: QHash(("error", QVariant(bool, true))("documentation", QVariant(QString, "https://bugzilla.readthedocs.org/en/5.0/api/"))("code", QVariant(qlonglong, 300))("message", QVariant(QString, "The login or password you entered is not valid.")))
org.kde.drkonqi: "[300] The login or password you entered is not valid."
qml: error [300] The login or password you entered is not valid.
org.kde.drkonqi.bugzilla: APIException: QHash(("error", QVariant(bool, true))("documentation", QVariant(QString, "https://bugzilla.readthedocs.org/en/5.0/api/"))("code", QVariant(qlonglong, 300))("message", QVariant(QString, "The login or password you entered is not valid.")))
org.kde.drkonqi: "[300] The login or password you entered is not valid."
qml: error [300] The login or password you entered is not valid.
kdeinit5: preparing to launch '/usr/lib/x86_64-linux-gnu/libexec/kf5/klauncher'
kdeinit5: Launched KLauncher, pid = 18054, result = 0
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
kdeinit5: opened connection to :0
kdeinit5: Got SHELL 'konqueror' from wrapper.
kdeinit5: preparing to launch '/usr/bin/konqueror'
Launched ok, pid = 18060
Hspell: can't open /usr/share/hspell/hebrew.wgz.sizes.
kf.sonnet.clients.hspell: HSpellDict::HSpellDict: Init failed
kf.service.services: KApplicationTrader: mimeType "x-scheme-handler/konq" not found
[18116:7:0920/122237.312504:ERROR:command_buffer_proxy_impl.cc(141)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
qml: logged in true
qml: logged in changed
qrc:/ui/DuplicatesLoadingPage.qml:32:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
search finished 25
ANALYZE
0 0
file:///usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/kirigami.2/PromptDialog.qml:113:22: QML SelectableLabel: Binding loop detected for property "implicitWidth"
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:72:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:92:21: QML Action: Accessible must be attached to an Item
qrc:/ui/DuplicatesPage.qml:107:21: QML Action: Accessible must be attached to an Item
Previously registered enum will be overwritten due to name clash: ReportInterface.Exclude
Possible conflicting items:
    ReportInterface.Backtrace.Exclude from scope ReportInterface injected by ReportInterface
    ReportInterface.DrKonqiStamp.Exclude from scope ReportInterface injected by ReportInterface
Qt Quick Layouts: Detected recursive rearrange. Aborting after two iterations.
Qt Quick Layouts: Detected recursive rearrange. Aborting after two iterations.
qml: login success
kdeinit5: PID 18060 terminated.
Hspell: can't open /usr/share/hspell/hebrew.wgz.sizes.
kf.sonnet.clients.hspell: HSpellDict::HSpellDict: Init failed
kf.service.services: KApplicationTrader: mimeType "x-scheme-handler/konq" not found
Unable to start Dr. Konqi
Re-raising signal for core dump handling.

[1]+  Segmentation fault      (core dumped) kdevelop ~/dev/dia