marble 23.08.1 crashed 4/4 times when starting in GNOME 45.0 on Wayland in a Fedora 39 KDE Plasma installation. coredumpctl gdb showed the memory access error _q_value=<error reading variable: Cannot access memory at address 0xffff000000000001> in frame 6 in QAtomicOps<int>::loadRelaxed<int> which looked like an invalid pointer. The trace had functions like QAdwaitaDecorations::updateColors from qadwaitadecorations-0.1.2-1.fc39.x86_64 which I think is used for Qt programs in GNOME in Fedora. Using host libthread_db library "/lib64/libthread_db.so.1". Core was generated by `marble'. Program terminated with signal SIGSEGV, Segmentation fault. #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44 44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0; [Current thread is 1 (Thread 0x7f530edf4f80 (LWP 43363))] (gdb) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007f530d2ae8a3 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78 #2 0x00007f530d25c8ee in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 #3 0x00007f530fc44945 in KCrash::defaultCrashHandler(int) () at /lib64/libKF5Crash.so.5 #4 0x00007f530d25c9a0 in <signal handler called> () at /lib64/libc.so.6 #5 std::__atomic_base<int>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=0xffff000000000001) at /usr/include/c++/13/bits/atomic_base.h:503 #6 QAtomicOps<int>::loadRelaxed<int>(std::atomic<int> const&) (_q_value=<error reading variable: Cannot access memory at address 0xffff000000000001>) at /usr/include/qt5/QtCore/qatomic_cxx11.h:239 #7 QBasicAtomicInteger<int>::loadRelaxed() const (this=0xffff000000000001) at /usr/include/qt5/QtCore/qbasicatomic.h:107 #8 QtPrivate::RefCount::deref() (this=0xffff000000000001) at /usr/include/qt5/QtCore/qrefcount.h:66 #9 QMap<QAdwaitaDecorations::ColorType, QColor>::~QMap() (this=<synthetic pointer>, this=<optimized out>) at /usr/include/qt5/QtCore/qmap.h:338 #10 QMap<QAdwaitaDecorations::ColorType, QColor>::operator=(QMap<QAdwaitaDecorations::ColorType, QColor>&&) (other=..., this=0x55d4453fb630) at /usr/include/qt5/QtCore/qmap.h:349 #11 QAdwaitaDecorations::updateColors(bool) (this=0x55d4453fb5f0, useDarkColors=<optimized out>) at /usr/src/debug/qadwaitadecorations-0.1.2-1.fc39.x86_64/src/qadwaitadecorations.cpp:156 #12 0x00007f52978209cb in operator() (watcher=0x55d444eea140, __closure=0x55d4453e3c40) --Type <RET> for more, q to quit, c to continue without paging--c at /usr/src/debug/qadwaitadecorations-0.1.2-1.fc39.x86_64/src/qadwaitadecorations.cpp:124 #13 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QDBusPendingCallWatcher*>, void, QAdwaitaDecorations::initConfiguration()::<lambda(QDBusPendingCallWatcher*)> >::call (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146 #14 QtPrivate::Functor<QAdwaitaDecorations::initConfiguration()::<lambda(QDBusPendingCallWatcher*)>, 1>::call<QtPrivate::List<QDBusPendingCallWatcher*>, void> (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256 #15 QtPrivate::QFunctorSlotObject<QAdwaitaDecorations::initConfiguration()::<lambda(QDBusPendingCallWatcher*)>, 1, QtPrivate::List<QDBusPendingCallWatcher*>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x55d4453e3c30, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443 #16 0x00007f530dae84f1 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffea3cd3c60, r=<optimized out>, this=0x55d4453e3c30) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #17 doActivate<false>(QObject*, int, void**) (sender=0x55d444eea140, signal_index=3, argv=0x7ffea3cd3c60) at kernel/qobject.cpp:3925 #18 0x00007f530dae3417 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f530ef315e0 <QDBusPendingCallWatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffea3cd3c60) at kernel/qobject.cpp:3985 #19 0x00007f530ef16cc1 in QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qdbuspendingcall.cpp:158 #20 0x00007f530daded9b in QObject::event(QEvent*) (this=0x55d444eea140, e=0x55d444e4b1c0) at kernel/qobject.cpp:1347 #21 0x00007f530e7aeb75 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55d444eea140, e=0x55d444e4b1c0) at kernel/qapplication.cpp:3640 #22 0x00007f530dab4218 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55d444eea140, event=0x55d444e4b1c0) at kernel/qcoreapplication.cpp:1064 #23 0x00007f530dab4432 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462 #24 0x00007f530dab76c5 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55d444817e80) at kernel/qcoreapplication.cpp:1821 #25 0x00007f530dab797d in QCoreApplication::sendPostedEvents(QObject*, int) (receiver=<optimized out>, event_type=<optimized out>) at kernel/qcoreapplication.cpp:1680 #26 0x00007f530db06c6f in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55d44497a830) at kernel/qeventdispatcher_glib.cpp:277 #27 0x00007f530bf11e1c in g_main_dispatch (context=0x7f52ec000ec0) at ../glib/gmain.c:3476 #28 g_main_context_dispatch_unlocked (context=0x7f52ec000ec0) at ../glib/gmain.c:4284 #29 0x00007f530bf6cd78 in g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7f52ec000ec0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4349 #30 0x00007f530bf0fa93 in g_main_context_iteration (context=0x7f52ec000ec0, may_block=1) at ../glib/gmain.c:4414 #31 0x00007f530db06759 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55d44497a7f0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #32 0x00007f530dab2bdb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffea3cd40d0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #33 0x00007f530dabae6b in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #34 0x000055d442f47035 in main () I'm attaching the full trace of all threads. marble ran normally in Plasma 5.27.8 on Wayland, so this might be a GNOME-specific problem. Reproducible: Always Steps to Reproduce: 1. Boot a Fedora 39 KDE Plasma installation with the GNOME desktop group installed 2. Log in to GNOME 45.0 on Wayland from sddm 3. Click on the button at the top-left of the screen to show the search bar 4. Enter marble in the search bar 5. Select marble from the search results Actual Results: marble crashed when starting in GNOME Expected Results: marble should've run normally drkonqi failed to generate traces from the marble core dumps due to some bad file descriptor errors. The traces I got were with drkonqi removed so that the crashes were shown by coredumpctl. I reported this problem at https://bugs.kde.org/show_bug.cgi?id=475672
Created attachment 1994100 [details] Full trace of all threads of marble crash
This problem didn't happen after I updated to qadwaitadecorations-0.1.2-5.fc39 https://bodhi.fedoraproject.org/updates/FEDORA-2023-69e9a0f475 which was marked as fixing a kdenlive crash with a similar trace https://bugzilla.redhat.com/show_bug.cgi?id=2244239
FEDORA-2023-69e9a0f475 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-69e9a0f475
FEDORA-2023-69e9a0f475 has been pushed to the Fedora 39 stable repository. If problem still persists, please make note of it in this bug report.