Bug 500351 - Plasmashell crashes due to incorrect DBus usage somewhere
Summary: Plasmashell crashes due to incorrect DBus usage somewhere
Status: REPORTED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (other bugs)
Version First Reported In: 6.3.0
Platform: openSUSE Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-02-18 21:46 UTC by Roman
Modified: 2025-05-07 15:50 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Roman 2025-02-18 21:46:25 UTC
SUMMARY
Hello. I want to report a bug which probably partly known, but got new details. I have NVidia GPU and proprietary 570.XX driver of NVidia. Plasma shell pereodically crashes, but restarts (reason unknown, no windows/dialogs showing any crash report option). But recently I found a thing that forces plasma shell crash instantly and not restart. In simple words, any time I press menu, fast searh, type "kate" and open it, within 20-30 seconds plasma shell dead, black background, no taskbar and all of it's contents. Only manual reactivation like "kstart plasmashell &" restores plasma shell back. And as far as I saw every time kate closed and reopened, plasma shell dies (on nvidia, other gpus untested, since only gpu I have).

STEPS TO REPRODUCE
1. Use NVidia gpu, plasma 6.3 on Wayland with nvidia proprietary driver
2. Open side menu for app search and type "kate"
3. Open Kate
4. Plasma shell completely dies without reloading even itself.

OBSERVED RESULT
Plasma shell dies after opening Kate for unknown reason (guide how to get any logs). Important thing is, Kate itself stays alive, but after opening Kate plasma shell r.i.p.

EXPECTED RESULT
Should normally keep plasma shell operational

SOFTWARE/OS VERSIONS
kinfo
Operating System: openSUSE Tumbleweed 20250216
KDE Plasma Version: 6.3.0
KDE Frameworks Version: 6.11.0
Qt Version: 6.8.2
Kernel Version: 6.13.2-5.gd313f71-default (64-bit)
Graphics Platform: Wayland
Processors: 8 × Intel® Xeon® CPU E3-1575M v5 @ 3.00GHz
Memory: 62.7 GiB of RAM
Graphics Processor: Quadro P3000


ADDITIONAL INFORMATION
Please, I know how you hate nvidia guys, but please, let's try to solve it please. Once any info that is usable from your end, I will demand any fixes/info needed from nvidia and annoy them. Hope report will not be dropped silently just because it's nvidia driver. Aside from that plasma shell issues, all the rest operates ideally.
Comment 1 Nate Graham 2025-02-18 22:54:45 UTC
> Please, I know how you hate nvidia guys, but please, let's try to solve it please
It's not hate, it's that we literally can't solve bugs in the proprietary NVIDIA driver, since it's a black box. We have no insight into what it's doing.

That said, so far there's no indication that the proprietary NVIDIA driver is to blame here without a backtrace we can inspect. Can you attach one? See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl
Comment 2 Roman 2025-02-18 23:34:14 UTC
I am trying to do it. Will take time. A lot of debug info being downloaded by debugged. But will try my best. Please take some patience
Comment 3 Roman 2025-02-18 23:44:42 UTC
Ok.

I don't know if this one is useful and not sure if debugged hanger taskbar or not. Anyway hanging taskbar backtrace debugger gives:

(gdb) backtrace
#0  0x00007fe6fc90f086 in __GI_ppoll (fds=fds@entry=0x558e37d7d900, nfds=nfds@entry=15, timeout=<optimized out>, timeout@entry=0x7fff44cf8840, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#1  0x00007fe6fbbbcddf in ppoll (__fds=0x558e37d7d900, __nfds=15, __timeout=0x7fff44cf8840, __ss=0x0) at /usr/include/bits/poll2.h:101
#2  g_main_context_poll_unlocked (priority=<optimized out>, context=0x7fe6f0000f00, timeout_usec=<optimized out>, fds=0x558e37d7d900, n_fds=15) at ../glib/gmain.c:4591
#3  g_main_context_iterate_unlocked (context=context@entry=0x7fe6f0000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4268
#4  0x00007fe6fbbbd4fc in g_main_context_iteration (context=0x7fe6f0000f00, may_block=1) at ../glib/gmain.c:4338
#5  0x00007fe6fd404ee3 in QEventDispatcherGlib::processEvents (this=0x558e2cdda500, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#6  0x00007fe6fd1b58db in QEventLoop::exec (this=this@entry=0x7fff44cf89b0, flags=..., flags@entry=...) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/global/qflags.h:34
#7  0x00007fe6fd1b759a in QCoreApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/global/qflags.h:74
#8  0x00007fe6fda102a0 in QGuiApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/gui/kernel/qguiapplication.cpp:1975
#9  0x00007fe6ff5dc0f9 in QApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/widgets/kernel/qapplication.cpp:2564
#10 0x0000558df54c607e in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-6.3.0/shell/main.cpp:191
Comment 4 Roman 2025-02-18 23:59:51 UTC
Hopefully I got what you needed.

Thread 2 "QDBusConnection" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fda5a1ff6c0 (LWP 395509)]
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
Downloading 4.06 K source file /usr/src/debug/glibc-2.40/nptl/pthread_kill.c
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;                                                                                                                                                                                      
(gdb) backtrace
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007fda5e49a1c3 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78
#2  0x00007fda5e441436 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007fda5e42891a in __GI_abort () at abort.c:79
#4  0x00007fda5d5b6e62 in _dbus_abort () at /usr/src/debug/dbus-1.14.10/dbus/dbus-sysdeps.c:101
#5  0x00007fda5d5dd898 in _dbus_warn_check_failed (format=0x7fda5d5e9178 "arguments to %s() were incorrect, assertion \"%s\" failed in file %s line %d.\nThis is normally a bug in some application using the D-Bus library.\n") at /usr/src/debug/dbus-1.14.10/dbus/dbus-internals.c:289
#6  0x00007fda5fe83d3a in q_dbus_pending_call_block (pending=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/dbus/qdbus_symbols_p.h:422
#7  QDBusConnectionPrivate::getNameOwnerNoCache (this=<optimized out>, serviceName=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/dbus/qdbusintegrator.cpp:2598
#8  0x00007fda5fe7297c in QDBusConnectionPrivate::addSignalHookImpl (this=0x7fda54001670, key=..., hook=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/dbus/qdbusintegrator.cpp:2308
#9  0x00007fda5fe7b7f1 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<QString const&, QDBusConnectionPrivate::SignalHook const&>, bool, bool (QDBusConnectionPrivate::*)(QString const&, QDBusConnectionPrivate::SignalHook const&)>::call(bool (QDBusConnectionPrivate::*)(QString const&, QDBusConnectionPrivate::SignalHook const&), QDBusConnectionPrivate*, void**)::{lambda()#1}::operator()() const (__closure=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobjectdefs_impl.h:151
#10 QtPrivate::FunctorCallBase::call_internal<bool, QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<QString const&, QDBusConnectionPrivate::SignalHook const&>, bool, bool (QDBusConnectionPrivate::*)(QString const&, QDBusConnectionPrivate::SignalHook const&)>::call(bool (QDBusConnectionPrivate::*)(QString const&, QDBusConnectionPrivate::SignalHook const&), QDBusConnectionPrivate*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<QString const&, QDBusConnectionPrivate::SignalHook const&>, bool, bool (QDBusConnectionPrivate::*)(QString const&, QDBusConnectionPrivate::SignalHook const&)>::call(bool (QDBusConnectionPrivate::*)(QString const&, QDBusConnectionPrivate::SignalHook const&), QDBusConnectionPrivate*, void**)::{lambda()#1}&&) (args=<optimized out>, fn=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobjectdefs_impl.h:68
#11 QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<QString const&, QDBusConnectionPrivate::SignalHook const&>, bool, bool (QDBusConnectionPrivate::*)(QString const&, QDBusConnectionPrivate::SignalHook const&)>::call (f=<optimized out>, o=<optimized out>, arg=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobjectdefs_impl.h:151
#12 QtPrivate::FunctionPointer<bool (QDBusConnectionPrivate::*)(QString const&, QDBusConnectionPrivate::SignalHook const&)>::call<QtPrivate::List<QString const&, QDBusConnectionPrivate::SignalHook const&>, bool> (f=<optimized out>, o=<optimized out>, arg=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobjectdefs_impl.h:199
#13 QtPrivate::QCallableObject<bool (QDBusConnectionPrivate::*)(QString const&, QDBusConnectionPrivate::SignalHook const&), QtPrivate::List<QString const&, QDBusConnectionPrivate::SignalHook const&>, bool>::impl (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobjectdefs_impl.h:570
#14 0x00007fda5edf4f87 in QObject::event (this=0x7fda54001670, e=0x7fda4c0032a0) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobject.cpp:1418
#15 0x00007fda5edada0b in doNotify (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qcoreapplication.cpp:1273
#16 QCoreApplication::notify (this=<optimized out>, receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qcoreapplication.cpp:1256
#17 QCoreApplication::notifyInternal2 (receiver=0x7fda54001670, event=0x7fda4c0032a0) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qcoreapplication.cpp:1172
#18 0x00007fda5edb3a20 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x555ac266d0f0) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qcoreapplication.cpp:1946
#19 0x00007fda5f007a47 in postEventSourceDispatch (s=0x7fda54001160) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#20 0x00007fda5d8e7ef8 in g_main_dispatch (context=0x7fda54000c80) at ../glib/gmain.c:3357
#21 g_main_context_dispatch_unlocked (context=context@entry=0x7fda54000c80) at ../glib/gmain.c:4208
#22 0x00007fda5d8e9ce8 in g_main_context_iterate_unlocked (context=context@entry=0x7fda54000c80, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4273
#23 0x00007fda5d8ea4fc in g_main_context_iteration (context=0x7fda54000c80, may_block=1) at ../glib/gmain.c:4338
#24 0x00007fda5f004ee3 in QEventDispatcherGlib::processEvents (this=0x7fda54000b70, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#25 0x00007fda5edb58db in QEventLoop::exec (this=0x7fda5a1fea10, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/global/qflags.h:34
#26 0x00007fda5eea4e1c in QThread::exec (this=this@entry=0x7fda5fee9b20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/global/qflags.h:74
#27 0x00007fda5fe609fe in QDBusConnectionManager::run (this=0x7fda5fee9b20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/dbus/qdbusconnectionmanager.cpp:144
#28 0x00007fda5ef1f597 in operator() (__closure=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/thread/qthread_unix.cpp:375
#29 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/thread/qthread_unix.cpp:311
#30 QThreadPrivate::start (arg=0x7fda5fee9b20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qtbase-everywhere-src-6.8.2/src/corelib/thread/qthread_unix.cpp:339
#31 0x00007fda5e498292 in start_thread (arg=<optimized out>) at pthread_create.c:447
#32 0x00007fda5e51d4fc in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Comment 5 Roman 2025-02-19 00:09:38 UTC
And logs in debugger.

https://paste.opensuse.org/pastes/3f4b2702b914

If I can assist somehow else please tell. If Nvidia side bug (since I am not good in debugging), please point anything +/- usefull for me to forward them
Comment 6 Roman 2025-02-19 00:12:54 UTC
https://paste.opensuse.org/pastes/b4a9f18dfe2f

this is same logs, but 3 months expiration period. previous was 1 week
Comment 7 Nate Graham 2025-02-19 21:23:27 UTC
Thanks, that's helpful! This looks very suspicious:

#5  0x00007fda5d5dd898 in _dbus_warn_check_failed (format=0x7fda5d5e9178 "arguments to %s() were incorrect, assertion \"%s\" failed in file %s line %d.\nThis is normally a bug in some application using the D-Bus library.\n") at /usr/src/debug/dbus-1.14.10/dbus/dbus-internals.c:289

It's less likely now that this is related to your NVIDIA GPU.

I found Bug 435999, which reports the same error, but nobody could figure out out.
Comment 8 Roman 2025-02-20 03:16:30 UTC
(In reply to Nate Graham from comment #7)
> Thanks, that's helpful! This looks very suspicious:
> 
> #5  0x00007fda5d5dd898 in _dbus_warn_check_failed (format=0x7fda5d5e9178
> "arguments to %s() were incorrect, assertion \"%s\" failed in file %s line
> %d.\nThis is normally a bug in some application using the D-Bus library.\n")
> at /usr/src/debug/dbus-1.14.10/dbus/dbus-internals.c:289
> 
> It's less likely now that this is related to your NVIDIA GPU.
> 
> I found Bug 435999, which reports the same error, but nobody could figure
> out out.

You're welcome! What I really noted and told above, I found out simply by accident that "kate" (Kate program, part of KDE apps) provokes crash of plasmashell in it's entirety, without even being reloaded (plasmashell) automatically. Ususally 100% crashes if fresh OS boot, and if plasmashell reactivated manually opening, closing in a loop (usually 5-10 circles) is enough to crash plasmashell. I reported to general bug section of plasmashell, since fail to understand how is that related. Mentioned NVidia gpu no idea is any sensible part here, since that's the only gpu I have in laptop in use.

So aside of logs, somehow kate and plasmashell related, maybe somewhere in the middle of data exchange or something. All most detailed description and steps to reproduce I could is now provided. Hopefully bug will be identified and caught.