Bug 502874

Summary: krunner crashes in KProtocolInfoFactory::findProtocol()
Product: [Frameworks and Libraries] frameworks-kio Reporter: Cherkah <cherkaba>
Component: PlacesAssignee: KIO Bugs <kio-bugs-null>
Status: REPORTED ---    
Severity: crash CC: alexander.lohnau, kde, kdelibs-bugs-null, natalie_clarius, nate, pietz
Priority: NOR    
Version First Reported In: 6.12.0   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: krunner_dump

Description Cherkah 2025-04-16 10:19:22 UTC
Created attachment 180311 [details]
krunner_dump

SUMMARY
I found a crash log for Krunner.
I don't know why because I don't use the app. I've had three crashes since the beginning of the week. They appear in my logs when I log in. See the attached file.

STEPS TO REPRODUCE
1.  at session start


OBSERVED RESULT
crash log

EXPECTED RESULT


SOFTWARE/OS VERSIONS
Operating System: EndeavourOS 
KDE Plasma Version: 6.3.4
KDE Frameworks Version: 6.12.0
Qt Version: 6.9.0
Kernel Version: 6.14.2-arch1-1 (64-bit)
Graphics Platform: Wayland
Memory: 31.3 Gio of RAM
Graphics Processor: NVIDIA GeForce GTX 1650


ADDITIONAL INFORMATION
Interesting fact: When I searched for the Krunner version in the terminal to enter it for this report, I got:
krunner --version
krunner 6.3.4
QThreadStorage: entry 8 destroyed before end of thread 0x5e8d74076d40
QThreadStorage: entry 4 destroyed before end of thread 0x5e8d74076d40
QThreadStorage: entry 3 destroyed before end of thread 0x5e8d74076d40
Comment 1 Nate Graham 2025-04-16 15:51:59 UTC
Here are the relevant parts:

#8  QMutexLocker<QMutex>::QMutexLocker (this=<optimized out>, mutex=<optimized out>, this=<optimized out>, mutex=<optimized out>) at /usr/include/qt6/QtCore/qmutex.h:223
No locals.
#9  KProtocolInfoFactory::findProtocol (this=0x0, protocol=..., updateCacheIfNotfound=updateCacheIfNotfound@entry=true) at /usr/src/debug/kio/kio-6.12.0/src/core/kprotocolinfofactory.cpp:63
        locker = <optimized out>
        filled = <optimized out>
        info = <optimized out>
#10 0x0000786bb434bc26 in KProtocolInfo::protocolClass (_protocol=...) at /usr/src/debug/kio/kio-6.12.0/src/core/kprotocolinfo.cpp:252
        prot = <optimized out>
#11 0x0000786bacf5f3fa in KFilePlacesItem::setBookmark (this=0x786b80037fa0, bookmark=...) at /usr/src/debug/kio/kio-6.12.0/src/filewidgets/kfileplacesitem.cpp:193
        protocol = {d = {d = 0x786b80049fe0, ptr = 0x786b80049ff0 u"file", size = 4}, static _empty = 0 u'\000'}
#12 0x0000786bacf68f46 in KFilePlacesModelPrivate::reloadBookmarks (this=<optimized out>) at /usr/src/debug/kio/kio-6.12.0/src/filewidgets/kfileplacesmodel.cpp:798
        shouldEmit = 254
        currentItems = {<QListSpecialMethods<KFilePlacesItem*>> = {<QListSpecialMethodsBase<KFilePlacesItem*>> = {<No data fields>}, <No data fields>}, d = {d = 0x786b80093c20, ptr = 0x786b80093c30, size = 18}}
        it_i = {i = 0x786b8004e080}
        it_c = {i = 0x786b80093c30}
        end_i = {i = 0x786b8004e0e0}
        end_c = {i = 0x786b80093cc0}


Perhaps it's crashing on bad Places data?
Comment 2 pietz 2025-10-01 15:30:37 UTC
Same here with Plasma 6.4.5:

$ krunner --version
krunner 6.4.5
QThreadStorage: entry 8 destroyed before end of thread 0x5c786c154ae0
QThreadStorage: entry 4 destroyed before end of thread 0x5c786c154ae0
QThreadStorage: entry 3 destroyed before end of thread 0x5c786c154ae0

But a few seconds before it worked. After one "calculating job" in krunner it disappeared (as normal) but denied coming back when I hit the shortcut again.
Comment 3 Kai Uwe Broulik 2025-10-04 13:29:15 UTC
Wonder why KProtocolInfoFactory would be null. It’s a Q_GLOBAL_STATIC