Bug 450523 - [Plasma][Wayland] Battery applet missing, restarting plasmashell throws segmentation fault
Summary: [Plasma][Wayland] Battery applet missing, restarting plasmashell throws segme...
Status: RESOLVED DUPLICATE of bug 443706
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (show other bugs)
Version: 5.24.0
Platform: openSUSE Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2022-02-18 14:26 UTC by Mrcuve0
Modified: 2022-02-21 23:08 UTC (History)
2 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 Mrcuve0 2022-02-18 14:26:53 UTC
Application: plasmashell (5.24.0)

Qt Version: 5.15.2
Frameworks Version: 5.90.0
Operating System: Linux 5.16.8-1-default x86_64
Windowing System: Wayland
Distribution: "openSUSE Tumbleweed"
DrKonqi: 5.24.0 [KCrashBackend]

-- Information about the crash:
- Unusual behavior I noticed:
The battery applet in the Plasmashell panel (system tray) disappears from time to time, making it difficult to understand the remaining percentage. The related entry is set to "always shown", changing it to "Shown when relevant" does not solve the issue. I still have to find what causes it in order to reproduce it. I noticed that, in some cases, the applet is missing even after a cold boot (when powered on battery).

To solve the issue, I restart plasmashell using "plasmashell --replace &". The panels restart and the battery applet appears, but the attached backtrace is produced, and KDE Crash handler is invoked.

- Expected behavior:
If set to "Always shown", the battery applet in the system tray shoul always be present.
If set to "Shown when relevant", it should be visible only when laptop is battery powered.

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  0x00007f72267a666a in wl_map_insert_at (data=<optimized out>, i=1761, flags=1, map=<optimized out>) at ../src/wayland-util.c:249
#7  proxy_destroy (proxy=proxy@entry=0x5645aef2bb70) at ../src/wayland-client.c:503
#8  0x00007f72267a7fcb in wl_proxy_destroy_caller_locks (proxy=0x5645aef2bb70) at ../src/wayland-client.c:523
#9  wl_proxy_marshal_array_flags (proxy=proxy@entry=0x5645aef2bb70, opcode=opcode@entry=0, interface=interface@entry=0x0, version=version@entry=1, flags=flags@entry=1, args=args@entry=0x7fff91d468a0) at ../src/wayland-client.c:861
#10 0x00007f72267a8abb in wl_proxy_marshal_flags (proxy=0x5645aef2bb70, opcode=0, interface=0x0, version=1, flags=1) at ../src/wayland-client.c:784
#11 0x00007f722685ca5e in wl_buffer_destroy (wl_buffer=0x5645aef2bb70) at /usr/include/wayland/wayland-client-protocol.h:2017
#12 KWayland::Client::WaylandPointer<wl_buffer, wl_buffer_destroy>::release (this=0x5645ae1b3818) at /usr/src/debug/kwayland-5.90.0-1.4.x86_64/src/client/wayland_pointer_p.h:44
#13 KWayland::Client::Buffer::Private::~Private (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kwayland-5.90.0-1.4.x86_64/src/client/buffer.cpp:38
#14 QScopedPointerDeleter<KWayland::Client::Buffer::Private>::cleanup (pointer=0x5645ae1b3810) at /usr/include/qt5/QtCore/qscopedpointer.h:60
#15 QScopedPointerDeleter<KWayland::Client::Buffer::Private>::cleanup (pointer=0x5645ae1b3810) at /usr/include/qt5/QtCore/qscopedpointer.h:52
#16 QScopedPointer<KWayland::Client::Buffer::Private, QScopedPointerDeleter<KWayland::Client::Buffer::Private> >::~QScopedPointer (this=<optimized out>, this=<optimized out>) at /usr/include/qt5/QtCore/qscopedpointer.h:107
#17 KWayland::Client::Buffer::~Buffer (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kwayland-5.90.0-1.4.x86_64/src/client/buffer.cpp:58
#18 0x00007f72268931c2 in QtSharedPointer::CustomDeleter<KWayland::Client::Buffer, QtSharedPointer::NormalDeleter>::execute (this=<optimized out>, this=<optimized out>) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:187
#19 QtSharedPointer::ExternalRefCountWithCustomDeleter<KWayland::Client::Buffer, QtSharedPointer::NormalDeleter>::deleter (self=<optimized out>) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:205
#20 0x00007f7226898476 in QtSharedPointer::ExternalRefCountData::destroy (this=0x5645ae6bf350) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:149
#21 QSharedPointer<KWayland::Client::Buffer>::deref (dd=0x5645ae6bf350) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:458
#22 QSharedPointer<KWayland::Client::Buffer>::deref (dd=0x5645ae6bf350) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:454
#23 QSharedPointer<KWayland::Client::Buffer>::deref (this=0x5645af49d270) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:453
#24 QSharedPointer<KWayland::Client::Buffer>::~QSharedPointer (this=<optimized out>, this=<optimized out>) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:310
#25 QList<QSharedPointer<KWayland::Client::Buffer> >::node_destruct (this=<optimized out>, to=0x5645aecb14f8, from=0x5645aecb14f8) at /usr/include/qt5/QtCore/qlist.h:524
#26 QList<QSharedPointer<KWayland::Client::Buffer> >::dealloc(QListData::Data*) [clone .isra.0] (data=0x5645aecb14e0, this=<optimized out>) at /usr/include/qt5/QtCore/qlist.h:921
#27 0x00007f7226888bd5 in QList<QSharedPointer<KWayland::Client::Buffer> >::~QList (this=<optimized out>, this=<optimized out>) at /usr/include/qt5/QtCore/qlist.h:871
#28 QList<QSharedPointer<KWayland::Client::Buffer> >::~QList (this=<optimized out>, this=<optimized out>) at /usr/include/qt5/QtCore/qlist.h:871
#29 QList<QSharedPointer<KWayland::Client::Buffer> >::operator= (other=..., this=<optimized out>) at /usr/include/qt5/QtCore/qlist.h:167
#30 QList<QSharedPointer<KWayland::Client::Buffer> >::clear (this=<optimized out>) at /usr/include/qt5/QtCore/qlist.h:930
#31 KWayland::Client::ShmPool::release (this=this@entry=0x5645ae0c7490) at /usr/src/debug/kwayland-5.90.0-1.4.x86_64/src/client/shm_pool.cpp:65
#32 0x00007f7226888c4b in KWayland::Client::ShmPool::~ShmPool (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kwayland-5.90.0-1.4.x86_64/src/client/shm_pool.cpp:60
#33 0x00007f7226888d29 in KWayland::Client::ShmPool::~ShmPool (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kwayland-5.90.0-1.4.x86_64/src/client/shm_pool.cpp:61
#34 0x00007f721c063a3d in QScopedPointerDeleter<KWayland::Client::ShmPool>::cleanup (pointer=<optimized out>) at /usr/include/qt5/QtCore/qscopedpointer.h:60
#35 QScopedPointer<KWayland::Client::ShmPool, QScopedPointerDeleter<KWayland::Client::ShmPool> >::~QScopedPointer (this=<optimized out>, this=<optimized out>) at /usr/include/qt5/QtCore/qscopedpointer.h:107
#36 WindowShadowTile::~WindowShadowTile (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kwayland-integration-5.24.0-1.1.x86_64/src/windowsystem/windowshadow.cpp:18
#37 WindowShadowTile::~WindowShadowTile (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kwayland-integration-5.24.0-1.1.x86_64/src/windowsystem/windowshadow.cpp:18
#38 0x00007f7225954ac0 in QtSharedPointer::ExternalRefCountData::destroy (this=0x5645ae0a5a60) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:149
#39 QSharedPointer<KWindowShadowTile>::deref (dd=0x5645ae0a5a60) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:458
#40 QSharedPointer<KWindowShadowTile>::deref (dd=0x5645ae0a5a60) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:454
#41 QSharedPointer<KWindowShadowTile>::deref (this=0x5645afcabd18) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:453
#42 QSharedPointer<KWindowShadowTile>::~QSharedPointer (this=<optimized out>, this=<optimized out>) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:310
#43 KWindowShadowPrivate::~KWindowShadowPrivate (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kwindowsystem-5.90.0-1.2.x86_64/src/kwindowshadow.cpp:281
#44 0x00007f721c063d2b in non-virtual thunk to WindowShadow::~WindowShadow() () at /usr/src/debug/kwayland-integration-5.24.0-1.1.x86_64/src/windowsystem/windowshadow.h:29
#45 0x00007f7225954a56 in QScopedPointerDeleter<KWindowShadowPrivate>::cleanup (pointer=<optimized out>) at /usr/include/qt5/QtCore/qscopedpointer.h:52
#46 QScopedPointer<KWindowShadowPrivate, QScopedPointerDeleter<KWindowShadowPrivate> >::~QScopedPointer (this=<optimized out>, this=<optimized out>) at /usr/include/qt5/QtCore/qscopedpointer.h:107
#47 KWindowShadow::~KWindowShadow (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kwindowsystem-5.90.0-1.2.x86_64/src/kwindowshadow.cpp:66
#48 0x00007f7225954a69 in KWindowShadow::~KWindowShadow (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kwindowsystem-5.90.0-1.2.x86_64/src/kwindowshadow.cpp:66
#49 0x00007f722466abae in QObjectPrivate::deleteChildren() () from /lib64/libQt5Core.so.5
#50 0x00007f7224675724 in QObject::~QObject() () from /lib64/libQt5Core.so.5
#51 0x00007f722694efb9 in (anonymous namespace)::Q_QGS_privateDialogShadowsSelf::innerFunction()::Holder::~Holder() () at /usr/src/debug/plasma-framework-5.90.0-1.1.x86_64/src/plasmaquick/dialogshadows.cpp:40
#52 0x00007f7223f76df5 in __run_exit_handlers (status=0, listp=0x7f7224137658 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:113
#53 0x00007f7223f76f80 in __GI_exit (status=<optimized out>) at exit.c:143
#54 0x00007f7223f5e5c7 in __libc_start_call_main (main=main@entry=0x5645aa9a5740 <main(int, char**)>, argc=argc@entry=2, argv=argv@entry=0x7fff91d46de8) at ../sysdeps/nptl/libc_start_call_main.h:74
#55 0x00007f7223f5e67c in __libc_start_main_impl (main=0x5645aa9a5740 <main(int, char**)>, argc=2, argv=0x7fff91d46de8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff91d46dd8) at ../csu/libc-start.c:409
#56 0x00005645aa9a8a35 in _start () at ../sysdeps/x86_64/start.S:116
[Inferior 1 (process 3572) detached]

Possible duplicates by query: bug 449812, bug 449307, bug 407992, bug 400346, bug 372789.

Reported using DrKonqi
Comment 1 Mrcuve0 2022-02-20 11:08:36 UTC
I can confirm this continues to happen with Plasma 5.24.1 too:

Operating System: openSUSE Tumbleweed 20220218
KDE Plasma Version: 5.24.1
KDE Frameworks Version: 5.90.0
Qt Version: 5.15.2
Kernel Version: 5.16.8-1-default (64-bit)
Graphics Platform: Wayland
Processors: 4 × Intel® Core™ i5-5200U CPU @ 2.20GHz
Memory: 7,7 GiB of RAM
Graphics Processor: Mesa Intel® HD Graphics 5500

Updates:
This morning I started my laptop (cold boot) when battery powered, and again the battery applet was missing from my system tray. Restarting plasmashell from krunner however didn't throw any segmentation fault. Everything restarted successfully and the battery applet finally appeared (and updates correctly).

So, the segmentation fault I reported early may bot be necessaritly linked to the battery applet missing.

Some additional info:
* I enabled "Show battery percentage on Icon";
* I don't have any lower and upper thresholds for battery recharging, as my system does not allow to;
Comment 2 Nate Graham 2022-02-21 23:08:51 UTC
The Battery applet not showing up in the tray until plasmashell is restarted is Bug 422111, and the crash is Bug 443706. Arbitrarily marking this as a duplicate of Bug 443706 since we can't multi-dupe.

*** This bug has been marked as a duplicate of bug 443706 ***