AvaloniaUI / Avalonia

Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET UI client technology
https://avaloniaui.net
MIT License
25.18k stars 2.18k forks source link

Avalonia menu export DBus interop crashes plasma 5.27 #15655

Open kekekeks opened 4 months ago

kekekeks commented 4 months ago

This is a regression caused by https://github.com/AvaloniaUI/Avalonia/pull/15568

We should never crash the entire DE.

To repro: use Plasma 5.27 and run an avalonia app with menu export enabled.

[KCrash Handler]
#4  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#5  0x00007fd7598a9e8f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#6  0x00007fd75985afb2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#7  0x00007fd759845472 in __GI_abort () at ./stdlib/abort.c:79
#8  0x00007fd759a9d919 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x00007fd759aa8e1a in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007fd759aa8e85 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#11 0x00007fd759aa90d8 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007fd759e8ffc7 in qTerminate() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007fd759e928d6 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007fd759f096ba in QListData::append(int) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007fd6eb77d525 in operator>>(QDBusArgument const&, DBusMenuShortcut&) () at /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/windowAppMenu/libappmenuplugin.so
#16 0x00007fd6eb77b07a in DBusMenuImporterPrivate::updateActionProperty(QAction*, QString const&, QVariant const&) () at /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/windowAppMenu/libappmenuplugin.so
#17 0x00007fd6eb77b667 in DBusMenuImporterPrivate::createAction(int, QMap<QString, QVariant> const&, QWidget*) () at /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/windowAppMenu/libappmenuplugin.so
#18 0x00007fd6eb774d5d in DBusMenuImporter::slotGetLayoutFinished(QDBusPendingCallWatcher*) () at /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/windowAppMenu/libappmenuplugin.so
#19 0x00007fd75a0e8f4f in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007fd75abb203f in QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) () at /lib/x86_64-linux-gnu/libQt5DBus.so.5
#21 0x00007fd75a0dd6f0 in QObject::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007fd75af62fae in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007fd75a0b16f8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007fd75a0b4681 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007fd75a10a153 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007fd75811e7a9 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fd75811ea38 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007fd75811eacc in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007fd75a109836 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007fd75a0b017b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007fd75a0b82d6 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x0000561013c994ef in  ()
#33 0x00007fd75984624a in __libc_start_call_main (main=main@entry=0x561013c96ed0, argc=argc@entry=1, argv=argv@entry=0x7fff49b16d38) at ../sysdeps/nptl/libc_start_call_main.h:58
#34 0x00007fd759846305 in __libc_start_main_impl (main=0x561013c96ed0, argc=1, argv=0x7fff49b16d38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff49b16d28) at ../csu/libc-start.c:360
#35 0x0000561013ca0631 in _start ()
[Inferior 1 (process 442058) detached]
kekekeks commented 4 months ago

@affederaffe

kekekeks commented 1 month ago

Note that global menu needs to be enabled on Plasma side

affederaffe commented 1 month ago

Fixed in https://github.com/AvaloniaUI/Avalonia/pull/15685