plasmashell crash when changing deskop containment from 'folder view' to 'desktop'

Bug #1759328 reported by trotosa
20
This bug affects 4 people
Affects Status Importance Assigned to Milestone
plasma-framework
Fix Released
Medium
plasma-framework (Ubuntu)
Undecided
Unassigned

Bug Description

On Kubuntu 18.04 beta 1 release

A right clic on the desktop give me the access to the desktop configuration.

I have 2 choices for the desktop view : "desktop" or "directory view".
When I change the last choice selected and apply the modification, the computer crash.

I can't do anything else and must use the power button to restart the computer.

After reboot, the desktop configuration is changed.

PS : when the selected choice is "directory view", vertical scrolling has no effect for changing from virtual desktop to an other one.

Please, be helpfull, english is not my native langage and may be the package is not the correct one.
informations are :
KDE frameworks 5.44.0
Qt 5.9.4
.xcb

Revision history for this message
In , Ekigwana-g (ekigwana-g) wrote :
Download full text (5.6 KiB)

QT 5.10.1
Plasma 5.12.80 (master)

Plasma shell crashes when I right click to change desktop from folder view to desktop view. I have a dual monitor setup and a possibly unrelated issue is that when I click apply, the dialog on the right side jumps to the left monitor then plasma crashes. On the left it jumps to the right then plasma shell crashes. So there is some symmetry after a crash.

* 1 Thread 0x7ffff7f82800 (LWP 27909) "plasmashell" QJsonPrivate::Object::indexOf (this=0x5555559daa68, key=..., exists=exists@entry=0x7fffffffcf97) at json/qjson.cpp:184
  2 Thread 0x7fffe10f2700 (LWP 32332) "QXcbEventReader" 0x00007ffff129c3d5 in __GI___poll (fds=0x7fffe10f1ca8, nfds=1, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:29
  3 Thread 0x7fffdb0f2700 (LWP 1624) "QDBusConnection" 0x00007ffff129c3d5 in __GI___poll (fds=0x7fffd4004db0, nfds=3, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:29
  4 Thread 0x7fffd96ad700 (LWP 1748) "QQmlThread" 0x00007ffff129c3d5 in __GI___poll (fds=0x7fffcc004a00, nfds=1, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:29
  5 Thread 0x7fffd219f700 (LWP 2126) "disk_cache:0" 0x00007ffff0b507cd in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555555ab4058) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
  6 Thread 0x7fff4262e700 (LWP 3364) "QQuickPixmapRea" 0x00007ffff129c3d5 in __GI___poll (fds=0x7fff3c0057b0, nfds=1, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:29
  7 Thread 0x7fff2f458700 (LWP 4001) "KCupsConnection" 0x00007ffff129c3d5 in __GI___poll (fds=0x7fff28006450, nfds=1, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:29
  10 Thread 0x7fff19b46700 (LWP 17113) "QQmlThread" 0x00007ffff129c3d5 in __GI___poll (fds=0x7fff0c03c700, nfds=1, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:29

#0 QJsonPrivate::Object::indexOf (this=0x5555559daa68, key=..., exists=exists@entry=0x7fffffffcf97) at json/qjson.cpp:184
#1 0x00007ffff1bc3de3 in QJsonObject::value (this=this@entry=0x7fffffffd140, key=...) at json/qjsonobject.cpp:393
#2 0x00007ffff3d114da in KPluginMetaData::readStringList (obj=..., key=...) at /var/tmp/portage/kde-frameworks/kcoreaddons-9999/work/kcoreaddons-9999/src/lib/plugin/kpluginmetadata.cpp:175
#3 0x00007ffff7995975 in PlasmaQuick::AppletQuickItemPrivate::preloadWeight (this=0x5555559d4d70) at /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999/src/plasmaquick/appletquickitem.cpp:94
#4 0x00007ffff7995e92 in PlasmaQuick::AppletQuickItem::~AppletQuickItem (this=0x5555559d5560, __in_chrg=<optimized out>) at /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999/src/plasmaquick/appletquickitem.cpp:509
#5 0x00007fffd3bda1eb in ContainmentInterface::~ContainmentInterface (this=0x5555559d5560, __in_chrg=<optimized out>) at /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999/src/scriptengines/qml/plasmoid/containmentinterface.h:51
#6 ContainmentInterface::~ContainmentInterface (this=0x5555559d5560, __in_chrg=<optimized out>) at /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999/src/scriptengines/qml/plasmoid/containmentinterface.h...

Read more...

Revision history for this message
In , Strangiato Xanadu (strangiato) wrote :

crash reproducible on Arch Linux when I change desktop layout to desktop or folder.
plasma is not automatically restarted, I get a black screen and need to restart plasma manually.

Revision history for this message
In , notuxius (notuxius) wrote :
Revision history for this message
In , Rik Mills (rikmills) wrote :
Revision history for this message
Matt (mh2721) wrote :

Yes, this happens to me to. However parts of KDE are still active. The desktop just crashes to a backscreen. To OP. If you press alt+space, krunner (search box) will appear. Type in plasmashell and then hit enter, and the desktop comes back.

Just to clarify. Changing between desktop and folder view crashes the desktop.
Happens with nvidia proprietary drivers or noveau.

Still present in nightly builds.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in frameworkintegration (Ubuntu):
status: New → Confirmed
Revision history for this message
Rik Mills (rikmills) wrote :

Bug reported in Gentoo plasma as well: https://bugs.kde.org/show_bug.cgi?id=391642

affects: frameworkintegration (Ubuntu) → plasma-framework (Ubuntu)
Changed in plasma-framework:
importance: Unknown → Medium
Rik Mills (rikmills)
summary: - computer crash when I change the desktop configuration
+ plasmashell crash when changing deskop containment from 'folder view' to
+ 'desktop'
Revision history for this message
Matt (mh2721) wrote :

This annoying bug is fixed in kde neon. when will it be fixed for kubuntu? Makes you think twice about using kubuntu when crashes don't get fixed.

Revision history for this message
Rik Mills (rikmills) wrote :

Tried debugging this with upstream plasma devels a few days ago, and even they were stumped and their debugging suggestions did not diagnose the cause.

Rik Mills (rikmills)
Changed in plasma-framework (Ubuntu):
milestone: none → ubuntu-18.04
tags: added: kubuntu
tags: added: bionic
Revision history for this message
In , 8p-k26-gj (8p-k26-gj) wrote :

*** Bug 392746 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Rik Mills (rikmills) wrote :

So from thet duplicate, we can add that this occurs in:

Application: plasmashell (5.12.4)
Qt Version: 5.10.0
Frameworks Version: 5.44.0
Operating System: Linux 4.4.120-45-default x86_64
Distribution: "openSUSE Leap 42.3"

Revision history for this message
Rik Mills (rikmills) wrote :

To add content from the upstream bug, this has been reported for:

QT 5.10.1
Plasma 5.12.80 (master)
Unknown distro

Archlinux
Unknown Qt and plasma version

Distribution: "openSUSE Leap 42.3"
plasmashell (5.12.4)
Qt Version: 5.10.0
Frameworks Version: 5.44.0

Kubuntu Bionic
Plasma 5.12.4 and 5.12.3
Qt 5.9.4
Frameworks 5.44

Revision history for this message
Matt (mh2721) wrote :

You can add Kubuntu 17.10 with backports. A fresh install on 17.10 (with no backports) this does not happen.

Revision history for this message
In , U26 (u26) wrote :

Writing the top backtrace out in words:

frame 9: containment(an applet subclass) gets deleted
frame 8: that deletes it's qobject children
frame 6: that deletes it's ContainmentInterface (the QML exposed containment side)
frame 3: that accesses the applet, which we delete in frame 9

Can do a simple QPointer guard, but that's just masking a more significant problem.

This crash shouldn't happen because:
Applet::~Applet should run between frames 9 and 8, AppletPrivate::~Private runs delete script, delete script *should* delete the ContainmentInterface.

So that means someone somewhere is calling containmentInterface->setParent(theContainment)
Find that and we find our crash.

Revision history for this message
In , U26 (u26) wrote :

src/plasmaquick/containmentview.cpp: oldGraphicObject->setParent(containment);

exactly what I said it would be, and run when you switched from desktop to folder view
Will replace with something else

Revision history for this message
In , 8p-k26-gj (8p-k26-gj) wrote :

*** Bug 392939 has been marked as a duplicate of this bug. ***

Revision history for this message
In , U26 (u26) wrote :

Git commit 2785916d01b26f5e9747bdf38428adce0a121842 by David Edmundson.
Committed on 10/04/2018 at 13:38.
Pushed by davidedmundson into branch 'master'.

Don't alter memory management to hide an item

Summary:
The original owner of a graphics item is the declarative applet script which
is owned and deleted by the applet.

Reparenting the containmentquickitem to the containment doesn't really
solve anything useful, we were originally effectively owned by the
containment(an applet subclass) not the view anyway.

This code also accidentally moves the destruction of the applet from being in
::~Applet to being in ::~QObject of the relevant containment. This
causes a big problem if the AppletQuickItem tries to access the applet
in it's own destructor. The applet object still exists, but use of
Applet member variables is not valid.

The new preloading code does this, leading to a crash.

Test Plan:
Changed desktop to folder twice
Changed activities twice

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: rikmills, #frameworks

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D12064

M +2 -5 src/plasmaquick/containmentview.cpp

https://commits.kde.org/plasma-framework/2785916d01b26f5e9747bdf38428adce0a121842

Changed in plasma-framework:
status: Unknown → Fix Released
Rik Mills (rikmills)
Changed in plasma-framework (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package plasma-framework - 5.44.0-0ubuntu3

---------------
plasma-framework (5.44.0-0ubuntu3) bionic; urgency=medium

  * Add upstream patch to fix crash on switching between 'FolderView'
    and 'Desktop' for the desktop containment. (LP: #1759328)
    I tested this and confirmed the fix in upstream code review
    at https://phabricator.kde.org/D12064
    - d/p: upstream_fix-crash-on-desktop-containment-switch.patch

 -- Rik Mills <email address hidden> Tue, 10 Apr 2018 16:18:49 +0100

Changed in plasma-framework (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
In , U26 (u26) wrote :

*** Bug 393041 has been marked as a duplicate of this bug. ***

Revision history for this message
Matt (mh2721) wrote :

Updated 18.04 this morning. yay! it's fixed for me :)

Thanks!

Revision history for this message
In , U26 (u26) wrote :

*** Bug 393928 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Alberto (moshpirit) wrote :

This just happened to me on Manjaro 19.0.0
DE: KDE 5.66.0 / Plasma 5.17.5
Kernel: x86_64 Linux 5.5.2-1-MANJARO

Revision history for this message
In , Strangiato Xanadu (strangiato) wrote :

probably you are affected by bug 416260

Changed in plasma-framework:
status: Fix Released → Confirmed
Revision history for this message
In , Nate-b (nate-b) wrote :

*** Bug 416260 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Nate-b (nate-b) wrote :

*** Bug 418359 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Nate-b (nate-b) wrote :

After getting quite a few reports in rapid succession, we have not gotten any duplicates following a potential fix via code change. Is anyone still experiencing this? I am not.

Revision history for this message
In , Ekigwana-g (ekigwana-g) wrote :

Frameworks: 5.78.0
Plasmashell: 5.20.80
QT: 5.15.2

I don't have this issue anymore.

Revision history for this message
In , Nate-b (nate-b) wrote :

Phew, thanks!

Revision history for this message
In , Peter Trenholme (ptrenholme-j) wrote :

No recent problem.

Changed in plasma-framework:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.