Bug 1421167
| Summary: | plasma-workspace crash after logging. | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | eddy02 <eddy.pilon> |
| Component: | plasma-workspace | Assignee: | KDE SIG <kde-sig> |
| Status: | CLOSED UPSTREAM | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 26 | CC: | jgrulich, kde-sig, mail, mattia.verga, me, nikkej, rdieter, than |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-03-07 12:06:25 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
eddy02
2017-02-10 14:17:14 UTC
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 |