Bug 2244320

Summary: marble crashed when starting in GNOME
Product: [Fedora] Fedora Reporter: Matt Fagnani <matt.fagnani>
Component: marbleAssignee: Rex Dieter <rdieter>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 39CC: jreznik, kde-sig, rdieter, than
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-10-17 06:35:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Full trace of all threads of marble crash none

Description Matt Fagnani 2023-10-15 21:33:33 UTC
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

Comment 1 Matt Fagnani 2023-10-15 21:35:57 UTC
Created attachment 1994100 [details]
Full trace of all threads of marble crash

Comment 2 Matt Fagnani 2023-10-16 04:06:44 UTC
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

Comment 3 Fedora Update System 2023-10-16 05:46:12 UTC
FEDORA-2023-69e9a0f475 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-69e9a0f475

Comment 4 Fedora Update System 2023-10-17 06:35:42 UTC
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.