Plasma-workspace crash after logging since kf5 framework update to 5.31 Dmesg output: 17.825019] ksplashqml[1270]: segfault at 7fffaff98fc0 ip 00007f7f12430a0b sp 00007fffaff98fc0 error 6 in libc-2.24.90.so[7f7f123a9000+1c3000] Rebuilding plasma-workspace and plasma-desktop with the new framework not solves the issue.
Any chance of a full backtrace? Otherwise, on the surface, the immediate crash is happening in glibc
Same issue when rebuilding all plasma packages to 5.9.1. Seem's to be a kf5 framework issue. I will try to downgrade every package one by one to find the problem. Another backtrace Thread 1 "ksplashqml" received signal SIGSEGV, Segmentation fault. 0x00007ffff59d61f2 in QJsonPrivate::Parser::parseObject() () from /lib64/libQt5Core.so.5 (gdb) bt #0 0x00007ffff59d61f2 in QJsonPrivate::Parser::parseObject() () from /lib64/libQt5Core.so.5 #1 0x00007ffff59d6897 in QJsonPrivate::Parser::parseValue(QJsonPrivate::Value*, int) () from /lib64/libQt5Core.so.5 #2 0x00007ffff59d6d35 in QJsonPrivate::Parser::parseArray() () from /lib64/libQt5Core.so.5 #3 0x00007ffff59d6953 in QJsonPrivate::Parser::parseValue(QJsonPrivate::Value*, int) () from /lib64/libQt5Core.so.5 #4 0x00007ffff59d6bc0 in QJsonPrivate::Parser::parseMember(int) () from /lib64/libQt5Core.so.5 #5 0x00007ffff59d6352 in QJsonPrivate::Parser::parseObject() () from /lib64/libQt5Core.so.5 #6 0x00007ffff59d6897 in QJsonPrivate::Parser::parseValue(QJsonPrivate::Value*, int) () from /lib64/libQt5Core.so.5 #7 0x00007ffff59d6bc0 in QJsonPrivate::Parser::parseMember(int) () from /lib64/libQt5Core.so.5 #8 0x00007ffff59d6352 in QJsonPrivate::Parser::parseObject() () from /lib64/libQt5Core.so.5 #9 0x00007ffff59d74f4 in QJsonPrivate::Parser::parse(QJsonParseError*) () from /lib64/libQt5Core.so.5 #10 0x00007ffff59ccc1e in QJsonDocument::fromJson(QByteArray const&, QJsonParseError*) () from /lib64/libQt5Core.so.5 #11 0x00007ffff69df0ff in KPluginMetaData::KPluginMetaData(QString const&) () from /lib64/libKF5CoreAddons.so.5 #12 0x00007ffff730b3c0 in KPackage::PackagePrivate::createPackageMetadata(QString const&) () from /lib64/libKF5Package.so.5 #13 0x00007ffff730d6c5 in KPackage::Package::metadata() const () from /lib64/libKF5Package.so.5 #14 0x00007ffff730eada in KPackage::Package::setPath(QString const&) () from /lib64/libKF5Package.so.5 #15 0x00007fffdc5d3bc8 in LookAndFeelPackage::initPackage (this=<optimized out>, package=0x7fffff7ff810) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:84 #16 0x00007ffff730a5cd in KPackage::Package::Package(KPackage::PackageStructure*) () from /lib64/libKF5Package.so.5 #17 0x00007ffff7315bef in KPackage::PackageLoader::loadPackage(QString const&, QString const&) () from /lib64/libKF5Package.so.5 #18 0x00007fffdc5d47af in LookAndFeelPackage::pathChanged (this=<optimized out>, package=0x7fffff7ffac0) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:96 #19 0x00007ffff730e9f8 in KPackage::Package::setPath(QString const&) () from /lib64/libKF5Package.so.5 #20 0x00007fffdc5d3bc8 in LookAndFeelPackage::initPackage (this=<optimized out>, package=0x7fffff7ffac0) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:84 #21 0x00007ffff730a5cd in KPackage::Package::Package(KPackage::PackageStructure*) () from /lib64/libKF5Package.so.5 #22 0x00007ffff7315bef in KPackage::PackageLoader::loadPackage(QString const&, QString const&) () from /lib64/libKF5Package.so.5 #23 0x00007fffdc5d47af in LookAndFeelPackage::pathChanged (this=<optimized out>, package=0x7fffff7ffd70) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:96 #24 0x00007ffff730e9f8 in KPackage::Package::setPath(QString const&) () from /lib64/libKF5Package.so.5 #25 0x00007fffdc5d3bc8 in LookAndFeelPackage::initPackage (this=<optimized out>, package=0x7fffff7ffd70) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:84 #26 0x00007ffff730a5cd in KPackage::Package::Package(KPackage::PackageStructure*) () from /lib64/libKF5Package.so.5 #27 0x00007ffff7315bef in KPackage::PackageLoader::loadPackage(QString const&, QString const&) () from /lib64/libKF5Package.so.5 #28 0x00007fffdc5d47af in LookAndFeelPackage::pathChanged (this=<optimized out>, package=0x7fffff800020) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:96 #29 0x00007ffff730e9f8 in KPackage::Package::setPath(QString const&) () from /lib64/libKF5Package.so.5 #30 0x00007fffdc5d3bc8 in LookAndFeelPackage::initPackage (this=<optimized out>, package=0x7fffff800020) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:84 #31 0x00007ffff730a5cd in KPackage::Package::Package(KPackage::PackageStructure*) () from /lib64/libKF5Package.so.5 #32 0x00007ffff7315bef in KPackage::PackageLoader::loadPackage(QString const&, QString const&) () from /lib64/libKF5Package.so.5 #33 0x00007fffdc5d47af in LookAndFeelPackage::pathChanged (this=<optimized out>, package=0x7fffff8002d0) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:96 #34 0x00007ffff730e9f8 in KPackage::Package::setPath(QString const&) () from /lib64/libKF5Package.so.5 #35 0x00007fffdc5d3bc8 in LookAndFeelPackage::initPackage (this=<optimized out>, package=0x7fffff8002d0) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:84 #36 0x00007ffff730a5cd in KPackage::Package::Package(KPackage::PackageStructure*) () from /lib64/libKF5Package.so.5 #37 0x00007ffff7315bef in KPackage::PackageLoader::loadPackage(QString const&, QString const&) () from /lib64/libKF5Package.so.5 #38 0x00007fffdc5d47af in LookAndFeelPackage::pathChanged (this=<optimized out>, package=0x7fffff800580) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:96 #39 0x00007ffff730e9f8 in KPackage::Package::setPath(QString const&) () from /lib64/libKF5Package.so.5 #40 0x00007fffdc5d3bc8 in LookAndFeelPackage::initPackage (this=<optimized out>, package=0x7fffff800580) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:84 #41 0x00007ffff730a5cd in KPackage::Package::Package(KPackage::PackageStructure*) () from /lib64/libKF5Package.so.5 #42 0x00007ffff7315bef in KPackage::PackageLoader::loadPackage(QString const&, QString const&) () from /lib64/libKF5Package.so.5 #43 0x00007fffdc5d47af in LookAndFeelPackage::pathChanged (this=<optimized out>, package=0x7fffff800830) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:96 #44 0x00007ffff730e9f8 in KPackage::Package::setPath(QString const&) () from /lib64/libKF5Package.so.5 #45 0x00007fffdc5d3bc8 in LookAndFeelPackage::initPackage (this=<optimized out>, package=0x7fffff800830) at /home/edmond/rpmbuild/BUILD/plasma-workspace-5.9.1/shell/packageplugins/lookandfeel/lookandfeel.cpp:84 -
possible too that plasma-5.9 changed how theming/looknfeel works in some non-backward-compatible way.
Downgrading kf5-kpackage and its depencies (kf5-kcoreaddons kf5-ki18n) solves the crash. Plasma starts now,I'll try to find another debugging mode. Thanks for your help.
Found the reason of the crash. A kf5-kpackage upstream patch: From e6d72cb9df6f55b3f463a5acfcad6a7bafe4bd81 Mon Sep 17 00:00:00 2001 From: Aleix Pol <aleixpol> Date: Thu, 29 Dec 2016 01:12:23 +0100 Subject: Improve installation process of KPackage bundles When parsing the desktop files, pass together the kpackage-generic.desktop service type, so that the parser knows its intrinsic types (most especially X-KPackage-Dependencies which is in fact added now). This is important because otherwise we get warnings when we extract the value when the package is a desktop file. This would be much less of a problem if desktop service types could be extended, but it's not the case at the moment. REVIEW: 129716 --- .../data/servicetypes/kpackage-generic.desktop | 2 ++ src/kpackage/package.cpp | 19 ++++++++++++++----- src/kpackage/private/packagejobthread.cpp | 8 +++++--- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/kpackage/data/servicetypes/kpackage-generic.desktop b/src/kpackage/data/servicetypes/kpackage-generic.desktop index 879d3b2..73e9077 100644 --- a/src/kpackage/data/servicetypes/kpackage-generic.desktop +++ b/src/kpackage/data/servicetypes/kpackage-generic.desktop @@ -8,3 +8,5 @@ Type=QString [PropertyDef::X-Plasma-MainScript] Type=QString +[PropertyDef::X-KPackage-Dependencies] +Type=QStringList diff --git a/src/kpackage/package.cpp b/src/kpackage/package.cpp index c032e6e..adc2a6e 100644 --- a/src/kpackage/package.cpp +++ b/src/kpackage/package.cpp @@ -921,17 +921,26 @@ void PackagePrivate::updateHash(const QString &basePath, const QString &subPath, void PackagePrivate::createPackageMetadata(const QString &path) { + static QString kpackageGenericService = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kservicetypes5/kpackage-generic.desktop")); delete metadata; const bool isDir = QFileInfo(path).isDir(); - if (isDir && QFile::exists(path + "/metadata.desktop")) { - metadata = new KPluginMetaData(path + "/metadata.desktop"); - } else if (isDir && QFile::exists(path + "/metadata.json")) { + + if (isDir && QFile::exists(path + "/metadata.json")) { metadata = new KPluginMetaData(path + "/metadata.json"); + } else if (isDir && QFile::exists(path + "/metadata.desktop")) { + Q_ASSERT(!kpackageGenericService.isEmpty()); + auto md = KPluginMetaData::fromDesktopFile(path + "/metadata.desktop", {kpackageGenericService}); + metadata = new KPluginMetaData(md); } else { - if (isDir) + if (isDir) { qWarning() << "No metadata file in the package, expected it at:" << path; - metadata = new KPluginMetaData(path); + } else if (path.endsWith(".desktop")) { + auto md = KPluginMetaData::fromDesktopFile(path, {kpackageGenericService}); + metadata = new KPluginMetaData(md); + } else { + metadata = new KPluginMetaData(path); + } } } diff --git a/src/kpackage/private/packagejobthread.cpp b/src/kpackage/private/packagejobthread.cpp index 8697341..fe187f0 100644 --- a/src/kpackage/private/packagejobthread.cpp +++ b/src/kpackage/private/packagejobthread.cpp @@ -40,6 +40,7 @@ #include <qtemporarydir.h> #include <QProcess> #include <QUrl> +#include <QStandardPaths> #include <QDebug> namespace KPackage @@ -292,9 +293,10 @@ bool PackageJobThread::installPackage(const QString &src, const QString &dest, O KPluginMetaData meta; if (!entries.isEmpty()) { const QString metadataFilePath = entries.first().filePath(); - if (metadataFilePath.endsWith(QLatin1String(".desktop"))) - meta = KPluginMetaData(metadataFilePath); - else { + if (metadataFilePath.endsWith(QLatin1String(".desktop"))) { + static QString kpackageGenericService = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kservicetypes5/kpackage-generic.desktop")); + meta = KPluginMetaData::fromDesktopFile(metadataFilePath, {kpackageGenericService}); + } else { QFile f(metadataFilePath); if(!f.open(QIODevice::ReadOnly)){ qWarning() << "Couldn't open metadata file" << src << path; -- cgit v0.11.2 Reverting the patch solves the issue.
Mind reporting it upstream so they have a chance to fix it?
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle. Changing version to '26'.
I have this exact same problem with my Fedora 24 installation, after updating kf5 to version 5.31. Shall I write a new bug or clone this one for Fedora 24?
This issue should be fixed with plasma-5.8.6, f24 builds are: https://bodhi.fedoraproject.org/updates/FEDORA-2017-c262a33752 We can close this one and track upstream, http://bugs.kde.org/376508