Bug 433821 - Plasmashell randomly, frequently crashes when interacting with the panel
Summary: Plasmashell randomly, frequently crashes when interacting with the panel
Status: RESOLVED WORKSFORME
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (show other bugs)
Version: 5.19.5
Platform: unspecified Linux
: NOR crash
Target Milestone: 1.0
Assignee: David Edmundson
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2021-03-01 21:45 UTC by Emma Jane Bonestell
Modified: 2021-03-31 04:33 UTC (History)
1 user (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 Emma Jane Bonestell 2021-03-01 21:45:41 UTC
Application: plasmashell (5.19.5)

Qt Version: 5.14.2
Frameworks Version: 5.74.0
Operating System: Linux 5.8.0-7642-generic x86_64
Windowing system: X11
Distribution: Pop!_OS 20.10

-- Information about the crash:
- What I was doing when the application crashed:

I often experience frequent crashes (10+ a day) of the Plasma shell when interacting with Plasma's panel in any way except for programs that are already pinned in the task manager. Editing/configuring the panel, adding or removing widgets, accessing the application launcher, etc, will randomly cause a crash. Less often, these crashes will occur when using the System Settings as well. The application launcher most often causes a crash when typing a search term into it.  It generally restarts itself within a few moments, but the KDE Crash Handler very rarely appears (maybe once every two weeks) to offer an easy way to backtrace the crash. Has been occurring for months, and it is not ameliorated even by a fresh/clean install.

The crash can be reproduced sometimes.

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

[KCrash Handler]
#4  0x00007f22dc8dedcf in WTF::OSAllocator::reserveAndCommit(unsigned long, WTF::OSAllocator::Usage, bool, bool, bool) (bytes=bytes@entry=4096, usage=usage@entry=WTF::OSAllocator::UnknownUsage, writable=writable@entry=true, executable=executable@entry=false, includesGuardPages=includesGuardPages@entry=false) at ../3rdparty/masm/wtf/OSAllocatorPosix.cpp:184
#5  0x00007f22dc6f895f in WTF::PageAllocation::allocate(unsigned long, WTF::OSAllocator::Usage, bool, bool, bool) (includesGuardPages=false, executable=false, writable=true, usage=WTF::OSAllocator::UnknownUsage, size=4096) at ../3rdparty/masm/wtf/PageAllocation.h:97
#6  (anonymous namespace)::allocatePage (storage=0x563362fbe840) at jsruntime/qv4persistent.cpp:90
#7  QV4::PersistentValueStorage::allocate() (this=0x563362fbe840) at jsruntime/qv4persistent.cpp:205
#8  0x00007f22dc6f8f5b in QV4::PersistentValue::set(QV4::ExecutionEngine*, QV4::Value const&) (this=this@entry=0x5633648461b8, engine=<optimized out>, value=...) at jsruntime/qv4persistent.cpp:350
#9  0x00007f22dc8861e3 in QQmlJavaScriptExpression::setupFunction(QV4::ExecutionContext*, QV4::Function*) (f=0x563361a78db0, qmlContext=0x7f221edc34e8, this=0x563364846180) at ../../include/QtQml/5.14.2/QtQml/private/../../../../../src/qml/memory/qv4heap_p.h:82
#10 QQmlJavaScriptExpression::setupFunction(QV4::ExecutionContext*, QV4::Function*) (this=this@entry=0x563364846180, qmlContext=qmlContext@entry=0x7f221edc34e8, f=f@entry=0x563361a78db0) at qml/qqmljavascriptexpression.cpp:392
#11 0x00007f22dc88c803 in QQmlBinding::create(QQmlPropertyData const*, QV4::Function*, QObject*, QQmlContextData*, QV4::ExecutionContext*) (property=property@entry=0x7f221800c9e8, function=function@entry=0x563361a78db0, obj=0x56336509f460, ctxt=0x5633635f0b50, scope=scope@entry=0x7f221edc34e8) at qml/qqmlbinding.cpp:141
#12 0x00007f22dc89c722 in QQmlObjectCreator::setPropertyBinding(QQmlPropertyData const*, QV4::CompiledData::Binding const*) (this=0x563363b21b20, bindingProperty=0x7f221800c9e8, binding=<optimized out>) at qml/qqmlobjectcreator_p.h:187
#13 0x00007f22dc89e653 in QQmlObjectCreator::setupBindings(bool) (this=this@entry=0x563363b21b20, applyDeferredBindings=applyDeferredBindings@entry=false) at qml/qqmlobjectcreator.cpp:812
#14 0x00007f22dc89ef42 in QQmlObjectCreator::populateInstance(int, QObject*, QObject*, QQmlPropertyData const*) (this=this@entry=0x563363b21b20, index=0, index@entry=1, instance=0x563364846210, bindingTarget=0x563364846210, valueTypeProperty=valueTypeProperty@entry=0x0) at qml/qqmlobjectcreator.cpp:1511
#15 0x00007f22dc89f8fb in QQmlObjectCreator::createInstance(int, QObject*, bool) (this=0x563363b21b20, index=<optimized out>, parent=<optimized out>, isContextObject=<optimized out>) at qml/qqmlobjectcreator.cpp:1344
#16 0x00007f22dc89df3b in QQmlObjectCreator::setPropertyBinding(QQmlPropertyData const*, QV4::CompiledData::Binding const*) (this=0x563363b21b20, bindingProperty=0x7f22180081e8, binding=0x7f226a21959c) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qendian.h:288
#17 0x00007f22dc89e653 in QQmlObjectCreator::setupBindings(bool) (this=this@entry=0x563363b21b20, applyDeferredBindings=applyDeferredBindings@entry=false) at qml/qqmlobjectcreator.cpp:812
#18 0x00007f22dc89ef42 in QQmlObjectCreator::populateInstance(int, QObject*, QObject*, QQmlPropertyData const*) (this=this@entry=0x563363b21b20, index=-1, index@entry=0, instance=0x0, bindingTarget=0x0, valueTypeProperty=valueTypeProperty@entry=0x0) at qml/qqmlobjectcreator.cpp:1511
#19 0x00007f22dc89f8fb in QQmlObjectCreator::createInstance(int, QObject*, bool) (this=0x563363b21b20, index=<optimized out>, parent=<optimized out>, isContextObject=<optimized out>) at qml/qqmlobjectcreator.cpp:1344
#20 0x00007f22dc8a05e7 in QQmlObjectCreator::create(int, QObject*, QQmlInstantiationInterrupt*) (this=this@entry=0x563363b21b20, subComponentIndex=<optimized out>, parent=parent@entry=0x0, interrupt=interrupt@entry=0x0) at qml/qqmlobjectcreator.cpp:205
#21 0x00007f22dc834cd9 in QQmlComponentPrivate::beginCreate(QQmlContextData*) (this=0x563364934780, context=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h:116
#22 0x00007f22dc834f0d in QQmlComponent::create(QQmlContext*) (this=0x563363a44bc0, context=<optimized out>) at qml/qqmlcomponent.cpp:809
#23 0x00007f22dd2bc232 in  () at /lib/x86_64-linux-gnu/libKF5PlasmaQuick.so.5
#24 0x00007f22dd2bd6aa in PlasmaQuick::ConfigView::ConfigView(Plasma::Applet*, QWindow*) () at /lib/x86_64-linux-gnu/libKF5PlasmaQuick.so.5
#25 0x000056335e138b6a in  ()
#26 0x00007f22db1bc2e6 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd672d6860, r=0x563360d60540, this=0x563360d0eed0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#27 doActivate<false>(QObject*, int, void**) (sender=0x56335ff3ddf0, signal_index=26, argv=0x7ffd672d6860) at kernel/qobject.cpp:3870
#28 0x00007f22dcf9e4a6 in Plasma::Containment::configureRequested(Plasma::Applet*) () at /lib/x86_64-linux-gnu/libKF5Plasma.so.5
#29 0x00007f22db1bc2e6 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd672d6980, r=0x56335ffba0a0, this=0x56335fff74a0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#30 doActivate<false>(QObject*, int, void**) (sender=0x56335ffba0a0, signal_index=26, argv=0x7ffd672d6980) at kernel/qobject.cpp:3870
#31 0x00007f22dcf9e4a6 in Plasma::Containment::configureRequested(Plasma::Applet*) () at /lib/x86_64-linux-gnu/libKF5Plasma.so.5
#32 0x00007f22db1bc320 in doActivate<false>(QObject*, int, void**) (sender=0x56335ffc7260, signal_index=4, argv=argv@entry=0x7ffd672d6aa0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#33 0x00007f22db1b6068 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x56335ffc7260, m=m@entry=0x7f22dc193f00 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffd672d6aa0) at kernel/qobject.cpp:3930
#34 0x00007f22dbc8b826 in QAction::triggered(bool) (this=this@entry=0x56335ffc7260, _t1=<optimized out>) at .moc/moc_qaction.cpp:381
#35 0x00007f22dbc8e111 in QAction::activate(QAction::ActionEvent) (this=this@entry=0x56335ffc7260, event=event@entry=QAction::Trigger) at kernel/qaction.cpp:1161
#36 0x00007f22dbe0ba5a in QMenuPrivate::activateCausedStack(QVector<QPointer<QWidget> > const&, QAction*, QAction::ActionEvent, bool) (this=this@entry=0x56336464f8c0, causedStack=..., action=action@entry=0x56335ffc7260, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1353
#37 0x00007f22dbe130c2 in QMenuPrivate::activateAction(QAction*, QAction::ActionEvent, bool) (this=0x56336464f8c0, action=0x56335ffc7260, action_e=QAction::Trigger, self=<optimized out>) at widgets/qmenu.cpp:1430
#38 0x00007f22dbcd330e in QWidget::event(QEvent*) (this=0x563364ac1f20, event=0x7ffd672d7110) at kernel/qwidget.cpp:9033
#39 0x00007f22dbc92013 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x563364ac1f20, e=0x7ffd672d7110) at kernel/qapplication.cpp:3685
#40 0x00007f22dbc97841 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3129
#41 0x00007f22db1861ca in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x563364ac1f20, event=0x7ffd672d7110) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:153
#42 0x00007f22dbc9673a in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (receiver=0x563364ac1f20, event=event@entry=0x7ffd672d7110, alienWidget=0x0, nativeWidget=0x563364ac1f20, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2615
#43 0x00007f22dbcec93f in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=0x563361ff5a40, event=0x7ffd672d73d0) at /usr/include/c++/10/bits/atomic_base.h:420
#44 0x00007f22dbceed8e in QWidgetWindow::event(QEvent*) (this=0x563361ff5a40, event=0x7ffd672d73d0) at kernel/qwidgetwindow.cpp:295
#45 0x00007f22dbc92013 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x563361ff5a40, e=0x7ffd672d73d0) at kernel/qapplication.cpp:3685
#46 0x00007f22db1861ca in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x563361ff5a40, event=0x7ffd672d73d0) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:153
#47 0x00007f22db55748b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=0x5633616d8b60) at kernel/qguiapplication.cpp:2203
#48 0x00007f22db52d2bb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1170
#49 0x00007f22d6d7635e in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#50 0x00007f22d96134db in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#51 0x00007f22d9613788 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007f22d9613853 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007f22db1dd843 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x56335fcf7640, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#54 0x00007f22db184a4b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd672d7700, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
#55 0x00007f22db18cfc6 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:118
#56 0x000056335e12684b in  ()
#57 0x00007f22dab36cb2 in __libc_start_main (main=0x56335e125c90, argc=1, argv=0x7ffd672d79c8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd672d79b8) at ../csu/libc-start.c:314
#58 0x000056335e126a2e in _start ()
[Inferior 1 (process 3225782) detached]

The reporter indicates this bug may be a duplicate of or related to bug 409450, bug 411807.

Possible duplicates by query: bug 433486, bug 432867, bug 432737, bug 432358, bug 432089.

Reported using DrKonqi
Comment 1 David Edmundson 2021-03-01 21:50:11 UTC
from the code:

```
    result = mmap(result, bytes, protection, flags, fd, 0);
    if (result == MAP_FAILED) {
            CRASH();   <--- and we are here
    }
```


which is pretty clear.

If mmap fails, it implies we have a memory issue rather than an issue actually in this bit of code.

Can you watch plasmashell in ksysguard/plasma-systemmonitor and see if the memory slowly climbs over time?

If so can you see if removing any particular widgets makes that go away
Comment 2 Bug Janitor Service 2021-03-16 04:33:35 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 3 Bug Janitor Service 2021-03-31 04:33:36 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!