Bug 439103

Summary: Discover crashed searching for DICOM
Product: [Applications] Discover Reporter: Christopher Yeleighton <giecrilj>
Component: discoverAssignee: Dan Leinir Turthra Jensen <leinir>
Status: ASSIGNED ---    
Severity: crash CC: admin, aleixpol, nate
Priority: NOR Keywords: drkonqi
Version: 5.22.1   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Christopher Yeleighton 2021-06-24 08:11:00 UTC
Application: plasma-discover (5.22.1)

Qt Version: 5.15.2
Frameworks Version: 5.83.0
Operating System: Linux 5.12.12-1-default x86_64
Windowing System: X11
Drkonqi Version: 5.22.1
Distribution: openSUSE Tumbleweed

-- Information about the crash:
- What I was doing when the application crashed:
I told Discover to search for DICOM.  It ran for some time and then crashed.

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: Odkrywca (plasma-discover), signal: Segmentation fault
Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7f05c7fae9c0 (LWP 7743))]
[KCrash Handler]
#6  0x00007f058ff9c6fd in KNSCore::Engine::setSearchTerm (this=0x9ff11730, searchString=...) at /usr/src/debug/knewstuff-5.83.0-1.1.x86_64/src/core/engine.cpp:597
#7  0x00007f0598012ed7 in operator() (__closure=0x55f09f6ff920) at /usr/src/debug/discover-5.22.1-1.1.x86_64/libdiscover/backends/KNSBackend/KNSBackend.cpp:612
#8  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KNSBackend::searchStream(ResultsStream*, const QString&)::<lambda()> >::call (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146
#9  QtPrivate::Functor<KNSBackend::searchStream(ResultsStream*, const QString&)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256
#10 QtPrivate::QFunctorSlotObject<KNSBackend::searchStream(ResultsStream*, const QString&)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x55f09f6ff910, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443
#11 0x00007f05cb3dd09e in QObject::event (this=0x55f09def6340, e=0x55f09e6a5330) at kernel/qobject.cpp:1314
#12 0x00007f05cc4a5a5f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55f09def6340, e=0x55f09e6a5330) at kernel/qapplication.cpp:3632
#13 0x00007f05cb3b0aaa in QCoreApplication::notifyInternal2 (receiver=0x55f09def6340, event=0x55f09e6a5330) at kernel/qcoreapplication.cpp:1063
#14 0x00007f05cb3b3af7 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55f09d3d1780) at kernel/qcoreapplication.cpp:1817
#15 0x00007f05cb408a73 in postEventSourceDispatch (s=s@entry=0x55f09d4be0c0) at kernel/qeventdispatcher_glib.cpp:277
#16 0x00007f05c97cf80f in g_main_dispatch (context=0x7f05c0005000) at ../glib/gmain.c:3337
#17 g_main_context_dispatch (context=0x7f05c0005000) at ../glib/gmain.c:4055
#18 0x00007f05c97cfb98 in g_main_context_iterate (context=context@entry=0x7f05c0005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131
#19 0x00007f05c97cfc4f in g_main_context_iteration (context=0x7f05c0005000, may_block=1) at ../glib/gmain.c:4196
#20 0x00007f05cb4080f4 in QEventDispatcherGlib::processEvents (this=0x55f09d4c0510, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#21 0x00007f05cb3af4bb in QEventLoop::exec (this=this@entry=0x7ffde2d81f20, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#22 0x00007f05cb3b7790 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#23 0x00007f05cb80e1fc in QGuiApplication::exec () at kernel/qguiapplication.cpp:1867
#24 0x00007f05cc4a59d5 in QApplication::exec () at kernel/qapplication.cpp:2824
#25 0x000055f09d01df90 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/discover-5.22.1-1.1.x86_64/discover/main.cpp:196
[Inferior 1 (process 7743) detached]

Possible duplicates by query: bug 435992, bug 434974, bug 434725, bug 434205, bug 433252.

Reported using DrKonqi
Comment 1 Christopher Yeleighton 2021-06-24 08:53:59 UTC
Additionally, when it does not crash, it returns GNOME Terminal, which seems completely irrelevant to the query.
Comment 2 Bug Janitor Service 2021-07-07 10:19:39 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/discover/-/merge_requests/144
Comment 3 Dan Leinir Turthra Jensen 2021-07-07 14:10:01 UTC
Trying to work out why this would crash (and that's what the linked patch aims to solve).

As to the search for DICOM returning a hit on GNOME Terminal, i can confirm, and also report that it's happening due to a partial match on the keywords in the appstream data, which are all in a long list, and translated to a bunch of different languages. There's not a whole lot we (or indeed the appstream folks, or the gnome terminal developers who supply the data to appstream) can reasonably do about that (this is what freetext searching is kind of supposed to do, even if it might seem a little odd). Thanks for the report, though :)