Bug 1382360

Summary: plasmashell hang right clicking application menu items
Product: [Fedora] Fedora Reporter: Steven Haigh <netwiz>
Component: plasma-desktopAssignee: KDE SIG <kde-sig>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 24CC: hein, jgrulich, kde-sig, me, netwiz, rdieter, than
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-10-07 12:34:47 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:
Attachments:
Description Flags
backtrace of plasmashell in hung state. none

Description Steven Haigh 2016-10-06 13:16:45 UTC
Created attachment 1207955 [details]
backtrace of plasmashell in hung state.

Description of problem:
Randomly, when clicking around in the Application menu, I can get the entire GUI to hang. This is difficult to reproduce - however from talking to rdieter on #fedora-kde, it seems to be related to packagekit.

Version-Release number of selected component (if applicable):
$ rpm -qa | grep plasma | sort
kdeplasma-addons-5.8.0-0.1.fc24.x86_64
kde-settings-plasma-24-7.fc24.noarch
kf5-plasma-5.26.0-1.fc24.x86_64
plasma-breeze-5.8.0-0.2.fc24.x86_64
plasma-breeze-common-5.8.0-0.2.fc24.noarch
plasma-desktop-5.8.0-0.1.fc24.x86_64
plasma-desktop-doc-5.8.0-0.1.fc24.noarch
plasma-discover-5.8.0-0.1.fc24.x86_64
plasma-discover-libs-5.8.0-0.1.fc24.x86_64
plasma-integration-5.8.0-0.1.fc24.x86_64
plasma-milou-5.8.0-0.1.fc24.x86_64
plasma-nm-5.8.0-0.1.fc24.x86_64
plasma-nm-l2tp-5.8.0-0.1.fc24.x86_64
plasma-nm-openconnect-5.8.0-0.1.fc24.x86_64
plasma-nm-openswan-5.8.0-0.1.fc24.x86_64
plasma-nm-openvpn-5.8.0-0.1.fc24.x86_64
plasma-nm-pptp-5.8.0-0.1.fc24.x86_64
plasma-nm-vpnc-5.8.0-0.1.fc24.x86_64
plasma-pa-5.8.0-0.1.fc24.x86_64
plasma-pk-updates-0.2-9.20160307git7b484b0.fc24.x86_64
plasma-systemsettings-5.8.0-0.1.fc24.x86_64
plasma-user-manager-5.8.0-0.1.fc24.x86_64
plasma-workspace-5.8.0-0.1.fc24.x86_64
plasma-workspace-common-5.8.0-0.1.fc24.x86_64
plasma-workspace-drkonqi-5.8.0-0.1.fc24.x86_64
plasma-workspace-geolocation-5.8.0-0.1.fc24.x86_64
plasma-workspace-geolocation-libs-5.8.0-0.1.fc24.x86_64
plasma-workspace-libs-5.8.0-0.1.fc24.x86_64

Backtrace attached.

Comment 1 Rex Dieter 2016-10-06 13:25:09 UTC
Guessing this is the problematic bit:


Thread 1 (Thread 0x7fb006a4e940 (LWP 2140)):
#0  0x00007fb0154550b9 in syscall () from /lib64/libc.so.6
#1  0x00007fb016060570 in QBasicMutex::lockInternal() () from /lib64/libQt5Core.so.5
#2  0x00007fb0160605e7 in QMutex::lock() () from /lib64/libQt5Core.so.5
#3  0x00007fb01623067a in QMetaObjectPrivate::disconnect(QObject const*, int, QMetaObject const*, QObject const*, int, void**, QMetaObjectPrivate::DisconnectType) ()
   from /lib64/libQt5Core.so.5
#4  0x00007fb01623163b in QObject::disconnect(QObject const*, char const*, QObject const*, char const*) () from /lib64/libQt5Core.so.5
#5  0x00007faf5a2dcfbb in PackageKit::TransactionPrivate::setupSignal(QString const&, bool) () from /lib64/libpackagekitqt5.so.0
#6  0x00007faf5a2de06d in PackageKit::Transaction::disconnectNotify(char const*) () from /lib64/libpackagekitqt5.so.0
#7  0x00007faf5a2dca5c in PackageKit::Transaction::disconnectNotify(QMetaMethod const&) () from /lib64/libpackagekitqt5.so.0
#8  0x00007fb01623554b in QObject::~QObject() () from /lib64/libQt5Core.so.5
#9  0x00007faf6042a819 in FindPackageJob::~FindPackageJob() () from /usr/lib64/qt5/qml/org/kde/plasma/private/kicker/libkickerplugin.so
#10 0x00007fb01622ec10 in QObject::event(QEvent*) () from /lib64/libQt5Core.so.5

Comment 2 Rex Dieter 2016-10-06 14:47:00 UTC
Do you use packagekit and does it usually work ok?

If not, one easy way to workaround this problem would be:
dnf remove PackageKit

which will also remove any existing PackageKit clients too of course, including: apper, plasma-pk-updates.

Comment 3 Kevin Kofler 2016-10-06 20:34:51 UTC
This issue is known upstream, and this is exactly why PackageKit integration was removed (commented out) upstream, it is written very clearly in the commit message of the commit you reverted:
> [Kicker] Disable PackageKit integration (aka "Uninstall app") context menu entry
>
> Currently we cannot populate the context menu asynchronously which means we
> block waiting for PackageKit which takes multiple seconds. While fixing the missing
> include was correct, the result is a terrible regression in a bugfix release.
> 
> Once changes to the context menu can be notified by the Kicker backend, ie. 5.8,
> this feature will return, sorry.
>
> As discussed with Eike

Comment 4 Rex Dieter 2016-10-07 11:58:39 UTC
Not exactly.  There's a difference between blocking and hanging indefinitely.

Comment 5 Steven Haigh 2016-10-07 12:00:13 UTC
PackageKit does seem to work normally - If its PK that gets used for the update notifications etc?

Comment 6 Rex Dieter 2016-10-07 12:34:47 UTC
%changelog
* Fri Oct 07 2016 Rex Dieter <rdieter> - 5.8.0-3
- drop re-enabling kicker PackageKit integration, it's racy (#1382360)