Summary: | System setting crash | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-kcmutils | Reporter: | nailspahija |
Component: | general | Assignee: | David Faure <faure> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | a.samirh78, chris.taylor, dario.ricca, fabian, faure, hithaishi.maldeniya, nate, rikmills, rnjohnson18, wbauer1, whilesharp |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.70.0 | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/frameworks/kcmutils/commit/53b41bc90b354ce7642f29d0f0a0464b32b29860 | Version Fixed In: | 5.71 |
Sentry Crash Report: | |||
Bug Depends on: | |||
Bug Blocks: | 421898 |
Description
nailspahija
2020-05-15 13:29:41 UTC
*** Bug 421699 has been marked as a duplicate of this bug. *** FTR, this is the content of the corresponding .desktop file /usr/share/kservices5/YaST-systemsettings.desktop (openSUSE-specific): [Desktop Entry] Type=Service Name=YaST Icon=yast-control-center GenericName=Administrator Settings Exec=kdesu -c /sbin/yast2 X-KDE-System-Settings-Parent-Category=system-administration X-KDE-ServiceTypes=SystemSettingsExternalApp It's apparently caused by this commit in kcmutils: https://commits.kde.org/kcmutils/6aa21a42ea6a49d425d40e017ac20d0a5a4abec7 If I revert it, the YaST systemsettings entry works fine. The same crash can been seen in Kubuntu when trying to launch the external software-properties app (driver manager) via systemsettings. It crashes in KCModuleInfo::service() because d->pluginInfo is not valid. Avoiding the crash would be easy by adding a check for d->pluginInfo.isValid() there, but launching external applications would still not work as they are not really plugins (and the mentioned commit basically removes support for that). Btw, launching external apps from systemsettings is somewhat "documented" in https://invent.kde.org/plasma/systemsettings/-/blob/master/examples/external-application.txt (by using "X-KDE-ServiceTypes=SystemSettingsExternalApp", systemsettings does install a corresponding kservicetypes file too), so a KF5 update probably shouldn't break that IMHO. (In reply to Wolfgang Bauer from comment #5) > Btw, launching external apps from systemsettings is somewhat "documented" in > https://invent.kde.org/plasma/systemsettings/-/blob/master/examples/external- > application.txt (by using "X-KDE-ServiceTypes=SystemSettingsExternalApp", > systemsettings does install a corresponding kservicetypes file too), so a > KF5 update probably shouldn't break that IMHO. The Kubuntu one does set X-KDE-ServiceTypes=SystemSettingsExternalApp, but it still crashes. (In reply to Rik Mills from comment #6) > The Kubuntu one does set X-KDE-ServiceTypes=SystemSettingsExternalApp, but > it still crashes. Sure (like openSUSE's YaST), that's exactly what broke by that commit. (In reply to Wolfgang Bauer from comment #7) > (In reply to Rik Mills from comment #6) > > The Kubuntu one does set X-KDE-ServiceTypes=SystemSettingsExternalApp, but > > it still crashes. > Sure (like openSUSE's YaST), that's exactly what broke by that commit. You might have misunderstood me though. I wanted to say that a KF5 update is probably not supposed to break that IMHO. (In reply to Wolfgang Bauer from comment #8) > You might have misunderstood me though. I wanted to say that a KF5 update is > probably not supposed to break that IMHO. I think I did, and agree. Git commit 0f442313d3357ef5d3cf1d3419944660d49d146d by David Faure. Committed on 20/05/2020 at 20:50. Pushed by dfaure into branch '2020_05_fix_yast_crash'. Fix crash when loading an external app KCM like yast This re-instates the use of KService as a first-class citizen in KCModuleInfo, apparently needed for non-plugins. A unittest ensures that the very basic use of service() on such a desktop file doesn't crash. M +2 -1 CMakeLists.txt A +7 -0 autotests/CMakeLists.txt A +8 -0 autotests/YaST-systemsettings.desktop [TRAILING SPACE] ** A +42 -0 autotests/kplugininfotest.cpp [License: LGPL (v2/3+eV)] M +53 -18 src/kcmoduleinfo.cpp The files marked with ** at the end have a problem. either the file contains a trailing space or the file contains a call to a potentially dangerous code. Please read: http://community.kde.org/Sysadmin/CommitHooks#Email_notifications Either fix the trailing space or review the dangerous code. https://invent.kde.org/frameworks/kcmutils/commit/0f442313d3357ef5d3cf1d3419944660d49d146d My apologies for this regression. I had no idea such "fake" KCMs existed. https://invent.kde.org/frameworks/kcmutils/-/merge_requests/2 (In reply to David Faure from comment #11) > My apologies for this regression. I had no idea such "fake" KCMs existed. > > https://invent.kde.org/frameworks/kcmutils/-/merge_requests/2 Thank you! I can confirm that it fixes the problem here, YaST starts now again as before. It looks like gitlab closes issues when committing to work branches... (In reply to Christoph Feck from comment #13) > It looks like gitlab closes issues when committing to work branches... dfaure just forgot to name the branch work/ :) Git commit 53b41bc90b354ce7642f29d0f0a0464b32b29860 by David Faure. Committed on 21/05/2020 at 08:23. Pushed by dfaure into branch 'master'. Fix crash when loading an external app KCM like yast This re-instates the use of KService as a first-class citizen in KCModuleInfo, apparently needed for non-plugins. A unittest ensures that the very basic use of service() on such a desktop file doesn't crash. M +4 -1 CMakeLists.txt A +7 -0 autotests/CMakeLists.txt A +8 -0 autotests/YaST-systemsettings.desktop [TRAILING SPACE] ** A +42 -0 autotests/kplugininfotest.cpp [License: LGPL (v2/3+eV)] M +59 -17 src/kcmoduleinfo.cpp The files marked with ** at the end have a problem. either the file contains a trailing space or the file contains a call to a potentially dangerous code. Please read: http://community.kde.org/Sysadmin/CommitHooks#Email_notifications Either fix the trailing space or review the dangerous code. https://invent.kde.org/frameworks/kcmutils/commit/53b41bc90b354ce7642f29d0f0a0464b32b29860 *** Bug 421828 has been marked as a duplicate of this bug. *** *** Bug 422233 has been marked as a duplicate of this bug. *** |