Bug 474383 - DrKonqi claims backtrace is useless when it isn't
Summary: DrKonqi claims backtrace is useless when it isn't
Status: RESOLVED FIXED
Alias: None
Product: drkonqi
Classification: Applications
Component: backtraceparsing (show other bugs)
Version: master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: qt6, regression
Depends on:
Blocks:
 
Reported: 2023-09-10 21:19 UTC by Nicolas Fella
Modified: 2023-10-24 14:55 UTC (History)
3 users (show)

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


Attachments
DrKonqi log (26.09 KB, text/plain)
2023-09-17 22:59 UTC, Nicolas Fella
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas Fella 2023-09-10 21:19:13 UTC
The following backtrace obtained via DrKonqi is flagged as useless (0/3 stars), but certainly isn't

Application: plasmashell (plasmashell), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5  0x00000065be102454 in  ()
#6  0x00007f29605d5b7e in QObject::disconnect(QObject const*, char const*, QObject const*, char const*) (sender=0x2083460, signal=signal@entry=0x0, receiver=receiver@entry=0x1b3d520, method=method@entry=0x0) at /usr/src/debug/qt6-qtbase-6.5.2-1.fc38.x86_64/src/corelib/kernel/qobject.cpp:3165
#7  0x00007f2963ad2513 in Plasma::Applet::~Applet() (this=0x1b3d520, __in_chrg=<optimized out>) at /home/nico/kde6/src/plasma-framework/src/plasma/applet.cpp:77
#8  0x00007f294c57d099 in IconApplet::~IconApplet() (this=0x1b3d520, __in_chrg=<optimized out>) at /home/nico/kde6/src/plasma-workspace/applets/icon/iconapplet.cpp:54
#9  0x00007f29605cfc59 in QObject::event(QEvent*) (this=0x1b3d520, e=0x424fce0) at /usr/src/debug/qt6-qtbase-6.5.2-1.fc38.x86_64/src/corelib/kernel/qobject.cpp:1378
#10 0x00007f2961bc0af8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#11 0x00007f296057cdb8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x1b3d520, event=0x424fce0) at /usr/src/debug/qt6-qtbase-6.5.2-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1118
#12 0x00007f296057cfbd in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.5.2-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1536
#13 0x00007f29605808d5 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x1380960) at /usr/src/debug/qt6-qtbase-6.5.2-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1898
#14 0x00007f2960580c0d in QCoreApplication::sendPostedEvents(QObject*, int) (receiver=<optimized out>, event_type=<optimized out>) at /usr/src/debug/qt6-qtbase-6.5.2-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1757
#15 0x00007f296082108f in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x1633f30) at /usr/src/debug/qt6-qtbase-6.5.2-1.fc38.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#16 0x00007f295f8b14fc in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#17 0x00007f295f90f6b8 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#18 0x00007f295f8aeb83 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#19 0x00007f296082092f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1385820, flags=...) at /usr/src/debug/qt6-qtbase-6.5.2-1.fc38.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#20 0x00007f29605899f3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffe09f09d0, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.5.2-1.fc38.x86_64/src/corelib/global/qflags.h:34
#21 0x00007f296058569d in QCoreApplication::exec() () at /usr/src/debug/qt6-qtbase-6.5.2-1.fc38.x86_64/src/corelib/global/qflags.h:74
#22 0x0000000000425b79 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde6/src/plasma-workspace/shell/main.cpp:236
[Inferior 1 (process 401725) detached]


SOFTWARE/OS VERSIONS
KDE Plasma Version: master
KDE Frameworks Version: master
Qt Version: 6.5.2
Comment 1 Nicolas Fella 2023-09-17 22:59:44 UTC
Created attachment 161683 [details]
DrKonqi log

Log from DrKonqi while processing an allegedly useless backtrace (backtrace is from https://bugs.kde.org/show_bug.cgi?id=474636).

What seems to happen is that BacktraceParser::backtraceUsefulness() and thus calculateRatingData() is called before the backtrace is actually processed, and then the bad result is cached
Comment 3 Nate Graham 2023-10-05 15:14:58 UTC
Hit the same thing with a NeoChat crash today (see Bug 475248 for the backtrace for it). DrKonqi claimed that I lacked debug symbols for the neochat executable, but that was false as I had compiled it myself with full debug symbols and the backtrace showed that.
Comment 4 Bug Janitor Service 2023-10-24 10:48:44 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/drkonqi/-/merge_requests/183
Comment 5 Harald Sitter 2023-10-24 14:55:57 UTC
Git commit 158fc8ab75658e4c4acebe19beadaede4b032cfe by Harald Sitter.
Committed on 24/10/2023 at 12:48.
Pushed by sitter into branch 'master'.

backtraceparser: reset cached usefulness on new lines

otherwise we get into states where the usefulness doesn't reflect the
actual usefulness of the received text

M  +7    -0    src/parser/backtraceparser.cpp
M  +1    -0    src/parser/backtraceparser.h

https://invent.kde.org/plasma/drkonqi/-/commit/158fc8ab75658e4c4acebe19beadaede4b032cfe