Bug 427106 - Plasma crashed when scrolling on wallpaper
Summary: Plasma crashed when scrolling on wallpaper
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Desktop Containment (show other bugs)
Version: 5.19.5
Platform: openSUSE Linux
: NOR crash
Target Milestone: 1.0
Assignee: Marco Martin
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2020-09-29 08:25 UTC by braggrj
Modified: 2020-09-30 15:23 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description braggrj 2020-09-29 08:25:36 UTC
Application: plasmashell (5.19.5)

Qt Version: 5.15.1
Frameworks Version: 5.74.0
Operating System: Linux 5.8.10-1-default x86_64
Windowing system: X11
Distribution: openSUSE Tumbleweed

-- Information about the crash:
- What I was doing when the application crashed:
Opening applications, using tool bar, installing missing libraries
- Unusual behavior I noticed:
Tool bar disappears, then comes back with Plasma crash window.

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault

[KCrash Handler]
#4  0x00007fd0161b0a36 in qNumVariantToHelper<int> (handlerManager=..., val=<error reading variable>, ok=0x7ffe86a0b0a7, d=...) at kernel/qvariant.cpp:3147
#5  QVariant::toInt (this=0x0, ok=ok@entry=0x7ffe86a0b0a7) at kernel/qvariant.cpp:3147
#6  0x00007fd010115ff7 in TaskManager::VirtualDesktopInfo::XWindowPrivate::requestActivate (this=<optimized out>, desktop=...) at /usr/src/debug/plasma5-workspace-5.19.5-3.1.x86_64/libtaskmanager/virtualdesktopinfo.cpp:172
#7  0x00007fd01016b7f6 in SwitchDesktop::performNextAction (this=0x56173c914ae0) at /usr/include/qt5/QtCore/qlist.h:570
#8  0x00007fd0105e0ec6 in ContainmentInterface::wheelEvent (this=0x56173c662a80, event=0x7ffe86a0b3f0) at /usr/src/debug/plasma-framework-5.74.0-1.1.x86_64/src/scriptengines/qml/plasmoid/containmentinterface.cpp:1025
#9  0x00007fd017cdf328 in QQuickItem::event (this=0x56173c662a80, ev=0x7ffe86a0b3f0) at /usr/src/debug/libqt5-qtdeclarative-5.15.1-2.1.x86_64/src/quick/items/qquickitem.cpp:8128
#10 0x00007fd016d1a14f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x56173c662a80, e=0x7ffe86a0b3f0) at kernel/qapplication.cpp:3630
#11 0x00007fd01616f05a in QCoreApplication::notifyInternal2 (receiver=0x56173c662a80, event=0x7ffe86a0b3f0) at ../../include/QtCore/5.15.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#12 0x00007fd017cdf328 in QQuickItem::event (this=0x56173cb814d0, ev=0x7ffe86a0b3f0) at /usr/src/debug/libqt5-qtdeclarative-5.15.1-2.1.x86_64/src/quick/items/qquickitem.cpp:8128
#13 0x00007fd016d1a14f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x56173cb814d0, e=0x7ffe86a0b3f0) at kernel/qapplication.cpp:3630
#14 0x00007fd01616f05a in QCoreApplication::notifyInternal2 (receiver=0x56173cb814d0, event=0x7ffe86a0b3f0) at ../../include/QtCore/5.15.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#15 0x00007fd017cfc007 in QQuickWindowPrivate::deliverSinglePointEventUntilAccepted (this=this@entry=0x56173c81e5d0, event=event@entry=0x56173f6f9040) at /usr/src/debug/libqt5-qtdeclarative-5.15.1-2.1.x86_64/src/quick/items/qquickwindow.cpp:2179
#16 0x00007fd017cfc75b in QQuickWindowPrivate::deliverPointerEvent (this=this@entry=0x56173c81e5d0, event=0x56173f6f9040) at /usr/src/debug/libqt5-qtdeclarative-5.15.1-2.1.x86_64/src/quick/items/qquickwindow.cpp:2598
#17 0x00007fd017cfc86e in QQuickWindow::wheelEvent (this=<optimized out>, event=0x7ffe86a0b710) at /usr/src/debug/libqt5-qtdeclarative-5.15.1-2.1.x86_64/src/quick/items/qquickwindow.cpp:2220
#18 0x00007fd0165bd655 in QWindow::event (this=0x56173ca3bc00, ev=<optimized out>) at kernel/qwindow.cpp:2438
#19 0x00007fd016d1a14f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x56173ca3bc00, e=0x7ffe86a0b710) at kernel/qapplication.cpp:3630
#20 0x00007fd01616f05a in QCoreApplication::notifyInternal2 (receiver=0x56173ca3bc00, event=0x7ffe86a0b710) at ../../include/QtCore/5.15.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#21 0x00007fd0165ad157 in QGuiApplicationPrivate::processWheelEvent (e=0x7fd00c003200) at kernel/qguiapplication.cpp:2363
#22 0x00007fd01658759b in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1175
#23 0x00007fd011c2826a in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#24 0x00007fd0145dc2b7 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#25 0x00007fd0145dc638 in ?? () from /usr/lib64/libglib-2.0.so.0
#26 0x00007fd0145dc6ef in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#27 0x00007fd0161c65af in QEventDispatcherGlib::processEvents (this=0x56173c5c4fb0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#28 0x00007fd01616da1b in QEventLoop::exec (this=this@entry=0x7ffe86a0b9b0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#29 0x00007fd016175c90 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#30 0x000056173bfffc87 in main (argc=<optimized out>, argv=0x7ffe86a0bbd0) at /usr/src/debug/plasma5-workspace-5.19.5-3.1.x86_64/shell/main.cpp:224
[Inferior 1 (process 5983) detached]

Possible duplicates by query: bug 424371, bug 415423, bug 413984, bug 410140, bug 405921.

Reported using DrKonqi
Comment 1 Nate Graham 2020-09-29 18:21:50 UTC
#6  0x00007fd010115ff7 in TaskManager::VirtualDesktopInfo::XWindowPrivate::requestActivate (this=<optimized out>, desktop=...) at /usr/src/debug/plasma5-workspace-5.19.5-3.1.x86_64/libtaskmanager/virtualdesktopinfo.cpp:172
#7  0x00007fd01016b7f6 in SwitchDesktop::performNextAction (this=0x56173c914ae0) at /usr/include/qt5/QtCore/qlist.h:570
#8  0x00007fd0105e0ec6 in ContainmentInterface::wheelEvent (this=0x56173c662a80, event=0x7ffe86a0b3f0) at /usr/src/debug/plasma-framework-5.74.0-1.1.x86_64


Which tool bar? Were you rolling your mouse wheel over the pager or the desktop?
Comment 2 braggrj 2020-09-29 18:41:43 UTC
Opening the tool/task bar at bottom of the screen.

Using Yast to install missing libraries.

Some applications would not open from the menus, using konsole showed libraries missing.

Scrolling mouse wheel on screen background also crashes.

Virtual desktop widget is not showing on the taskbar.

Same issue happens if I use NoMachine to have desktop shown on remote machine.

PC has NVidia GT1030 card and using NVidia drivers - work fine on 15.1 - dual boot machine.
Comment 3 Nate Graham 2020-09-29 20:26:24 UTC
Thanks for the info.
Comment 4 David Edmundson 2020-09-29 23:24:23 UTC
>Virtual desktop widget is not showing on the taskbar.

That says alot. We think has no virtual desktops

```
void SwitchDesktop::performNextAction() calls

m_virtualDesktopInfo->requestActivate(desktopIds.at(nextDesktopIndex));
```

is run but desktopIds will be empty, so this array access is out of bounds.

I'll add a guard. It'll fix the crash, but that doesn't explain the broken setup.
Comment 5 Bug Janitor Service 2020-09-30 09:00:12 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/306
Comment 6 David Edmundson 2020-09-30 15:19:10 UTC
Git commit 2441c82a2a92535ccc0a9643715427eb362c98e8 by David Edmundson.
Committed on 30/09/2020 at 15:18.
Pushed by davidedmundson into branch 'master'.

[containmentactions] Guard against having no virtual desktops

It can apparently happen that virtual desktops is empty at a given point
in time. Potentially due to other bugs on the system.

Calls to desktopIds.at(N) will fail.

M  +7    -0    containmentactions/switchdesktop/desktop.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/2441c82a2a92535ccc0a9643715427eb362c98e8
Comment 7 Nate Graham 2020-09-30 15:23:20 UTC
Git commit 5cb38daedbfa5ef26a47d82d197c96230a004b0f by Nate Graham, on behalf of David Edmundson.
Committed on 30/09/2020 at 15:23.
Pushed by ngraham into branch 'Plasma/5.20'.

[containmentactions] Guard against having no virtual desktops

It can apparently happen that virtual desktops is empty at a given point
in time. Potentially due to other bugs on the system.

Calls to desktopIds.at(N) will fail.


(cherry picked from commit 2441c82a2a92535ccc0a9643715427eb362c98e8)

M  +7    -0    containmentactions/switchdesktop/desktop.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/5cb38daedbfa5ef26a47d82d197c96230a004b0f