Bug 485089

Summary: Dolphin crashes on start
Product: [Applications] dolphin Reporter: Nicolas Fella <nicolas.fella>
Component: generalAssignee: Dolphin Bug Assignee <dolphin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: josh, kfm-devel, kyle.devir, mike, robby.engelmann
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Nicolas Fella 2024-04-05 15:08:05 UTC
#0  QObject::deleteLater (this=0x0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:2462
#1  0x00000000006a0e06 in operator() (__closure=0x6030003f3560, enabled=true) at /home/nico/kde/src/dolphin/src/disabledactionnotifier.cpp:29
#2  0x00000000006a28a8 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, DisabledActionNotifier::setDisabledReason(QAction*, QStringView)::<lambda(bool)> >::call(struct {...} &, void **) (f=..., arg=0x7fffffff97f0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:137
#3  0x00000000006a277b in QtPrivate::FunctorCallable<DisabledActionNotifier::setDisabledReason(QAction*, QStringView)::<lambda(bool)>, bool>::call<QtPrivate::List<bool>, void>(struct {...} &, void *, void **) (f=..., arg=0x7fffffff97f0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:345
#4  0x00000000006a2676 in QtPrivate::QCallableObject<DisabledActionNotifier::setDisabledReason(QAction*, QStringView)::<lambda(bool)>, QtPrivate::List<bool>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x6030003f3550, r=0x6030002e0900, a=0x7fffffff97f0, ret=0x0)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:555
#5  0x00007ffff3dbd5e0 in QtPrivate::QSlotObjectBase::call (a=0x7fffffff97f0, r=0x6030002e0900, this=0x6030003f3550)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:469
#6  doActivate<false> (sender=0x602000094dd0, signal_index=4, argv=0x7fffffff97f0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4086
#7  0x00007ffff3db49df in QMetaObject::activate
    (sender=sender@entry=0x602000094dd0, m=m@entry=0x7ffff4cb0f00 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fffffff97f0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4146
#8  0x00007ffff49aafd2 in QAction::enabledChanged (this=this@entry=0x602000094dd0, _t1=<optimized out>, _t1@entry=true)
    at /home/nico/workspace/qt6/qtbase/src/gui/Gui_autogen/include/moc_qaction.cpp:460
#9  0x00007ffff49add40 in QActionPrivate::setEnabled (this=0x614000038a40, b=true, byGroup=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/gui/kernel/qaction.cpp:958
#10 0x0000000000473c59 in DolphinMainWindow::updatePasteAction (this=0x612000143a40) at /home/nico/kde/src/dolphin/src/dolphinmainwindow.cpp:861
#11 0x0000000000473fd0 in DolphinMainWindow::slotDirectoryLoadingCompleted (this=0x612000143a40) at /home/nico/kde/src/dolphin/src/dolphinmainwindow.cpp:871
#12 0x00000000004e978d in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (DolphinMainWindow::*)()>::call(void (DolphinMainWindow::*)(), DolphinMainWindow*, void**)
    (f=(void (DolphinMainWindow::*)(DolphinMainWindow * const)) 0x473fb8 <DolphinMainWindow::slotDirectoryLoadingCompleted()>, o=0x612000143a40, arg=0x7fffffff9b70)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:145
#13 0x00000000004e4ebe in QtPrivate::FunctionPointer<void (DolphinMainWindow::*)()>::call<QtPrivate::List<>, void>(void (DolphinMainWindow::*)(), DolphinMainWindow*, void**) (f=(void (DolphinMainWindow::*)(DolphinMainWindow * const)) 0x473fb8 <DolphinMainWindow::slotDirectoryLoadingCompleted()>, o=0x612000143a40, arg=0x7fffffff9b70)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:182
#14 0x00000000004dd5a8 in QtPrivate::QCallableObject<void (DolphinMainWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x6030003c82f0, r=0x612000143a40, a=0x7fffffff9b70, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:553
#15 0x00007ffff3dbd5e0 in QtPrivate::QSlotObjectBase::call (a=0x7fffffff9b70, r=0x612000143a40, this=0x6030003c82f0)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:469
#16 doActivate<false> (sender=0x612000195040, signal_index=34, argv=0x7fffffff9b70) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4086
#17 0x00007ffff73ef4b3 in DolphinView::directoryLoadingCompleted (this=0x612000195040)
    at /home/nico/kde/build/dolphin/src/dolphinprivate_autogen/include/moc_dolphinview.cpp:1494
#18 0x00007ffff73dbe96 in DolphinView::slotDirectoryLoadingCompleted (this=0x612000195040) at /home/nico/kde/src/dolphin/src/views/dolphinview.cpp:1903
#19 0x00007ffff7408708 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (DolphinView::*)()>::call(void (DolphinView::*)(), DolphinView*, void**) (f=(void (DolphinView::*)(DolphinView * const)) 0x7ffff73dbd6c <DolphinView::slotDirectoryLoadingCompleted()>, o=0x612000195040, arg=0x7fffffff9e20)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:145
#20 0x00007ffff7407166 in QtPrivate::FunctionPointer<void (DolphinView::*)()>::call<QtPrivate::List<>, void>(void (DolphinView::*)(), DolphinView*, void**)
    (f=(void (DolphinView::*)(DolphinView * const)) 0x7ffff73dbd6c <DolphinView::slotDirectoryLoadingCompleted()>, o=0x612000195040, arg=0x7fffffff9e20)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:182
#21 0x00007ffff7402f94 in QtPrivate::QCallableObject<void (DolphinView::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
--Type <RET> for more, q to quit, c to continue without paging--c
    (which=1, this_=0x6030003b5e40, r=0x612000195040, a=0x7fffffff9e20, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:553
#22 0x00007ffff3dbd5e0 in QtPrivate::QSlotObjectBase::call (a=0x7fffffff9e20, r=0x612000195040, this=0x6030003b5e40)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:469
#23 doActivate<false> (sender=0x61300007bb80, signal_index=12, argv=0x7fffffff9e20) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4086
#24 0x00007ffff71416d1 in KFileItemModel::directoryLoadingCompleted (this=0x61300007bb80)
    at /home/nico/kde/build/dolphin/src/dolphinprivate_autogen/include/moc_kfileitemmodel.cpp:377
#25 0x00007ffff71214c5 in KFileItemModel::slotCompleted (this=0x61300007bb80) at /home/nico/kde/src/dolphin/src/kitemviews/kfileitemmodel.cpp:1082
#26 0x00007ffff71b79ce in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KFileItemModel::*)()>::call(void (KFileItemModel::*)(), KFileItemModel*, void**) (f=(void (KFileItemModel::*)(KFileItemModel * const)) 0x7ffff7121180 <KFileItemModel::slotCompleted()>, o=0x61300007bb80, arg=0x7fffffffa1a0)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:145
#27 0x00007ffff71a5456 in QtPrivate::FunctionPointer<void (KFileItemModel::*)()>::call<QtPrivate::List<>, void>(void (KFileItemModel::*)(), KFileItemModel*, void**)
    (f=(void (KFileItemModel::*)(KFileItemModel * const)) 0x7ffff7121180 <KFileItemModel::slotCompleted()>, o=0x61300007bb80, arg=0x7fffffffa1a0)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:182
#28 0x00007ffff718e44a in QtPrivate::QCallableObject<void (KFileItemModel::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x6030003a1fb0, r=0x61300007bb80, a=0x7fffffffa1a0, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:553
#29 0x00007ffff3dbd5e0 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffa1a0, r=0x61300007bb80, this=0x6030003a1fb0)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:469
#30 doActivate<false> (sender=0x6030003a1d70, signal_index=5, argv=0x7fffffffa1a0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4086
#31 0x00007ffff3db49df in QMetaObject::activate
    (sender=sender@entry=0x6030003a1d70, m=m@entry=0x7ffff6b00f20 <KCoreDirLister::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fffffffa1a0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4146
#32 0x00007ffff6a6bec9 in KCoreDirLister::listingDirCompleted (this=this@entry=0x6030003a1d70, _t1=...)
    at /home/nico/kde/build/kio/src/core/KF6KIOCore_autogen/include/moc_kcoredirlister.cpp:495
#33 0x00007ffff6a7d442 in KCoreDirListerCache::slotResult (this=0x613000035d40, j=<optimized out>) at /home/nico/kde/src/kio/src/core/kcoredirlister.cpp:1312
#34 0x00007ffff3dbd5e0 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffa370, r=0x613000035d40, this=0x6030003e8840)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:469
#35 doActivate<false> (sender=0x6030003e82d0, signal_index=6, argv=0x7fffffffa370) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4086
#36 0x00007ffff3db49df in QMetaObject::activate
    (sender=sender@entry=0x6030003e82d0, m=m@entry=0x7ffff5dfc100 <KJob::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fffffffa370) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4146
#37 0x00007ffff5db3ec3 in KJob::result (this=this@entry=0x6030003e82d0, _t1=<optimized out>, _t1@entry=0x6030003e82d0, _t2=...)
    at /home/nico/kde/build/kcoreaddons/src/lib/KF6CoreAddons_autogen/include/moc_kjob.cpp:622
#38 0x00007ffff5db493b in KJob::finishJob (this=0x6030003e82d0, emitResult=<optimized out>) at /home/nico/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:98
#39 0x00007ffff3dbd5e0 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffa410, r=0x6030003e82d0, this=0x60300050c470)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:469
#40 doActivate<false> (sender=0x6140000ec640, signal_index=7, argv=0x7fffffffa410) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4086
#41 0x00007ffff3db49df in QMetaObject::activate
    (sender=sender@entry=0x6140000ec640, m=m@entry=0x7ffff6b01740 <KIO::WorkerInterface::staticMetaObject>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4146
#42 0x00007ffff6aa10d6 in KIO::WorkerInterface::finished (this=0x6140000ec640)
    at /home/nico/kde/build/kio/src/core/KF6KIOCore_autogen/include/moc_workerinterface_p.cpp:525
#43 KIO::WorkerInterface::dispatch (this=0x6140000ec640, _cmd=104, rawdata=...) at /home/nico/kde/src/kio/src/core/workerinterface.cpp:129
#44 0x00007ffff6a9e77b in KIO::WorkerInterface::dispatch (this=0x6140000ec640) at /home/nico/kde/src/kio/src/core/workerinterface.cpp:60
#45 0x00007ffff6a9bbad in KIO::Worker::gotInput (this=0x6140000ec640) at /home/nico/kde/src/kio/src/core/worker.cpp:263
#46 0x00007ffff3dbd5e0 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffa750, r=0x6140000ec640, this=0x603000570d00)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:469
#47 doActivate<false> (sender=0x60300050c260, signal_index=3, argv=0x7fffffffa750) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4086
#48 0x00007ffff3dafadb in QObject::event (this=0x60300050c260, e=0x60c0004aac40) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:1452
#49 0x00007ffff4f81b41 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x60300050c260, e=0x60c0004aac40)
    at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3287
#50 0x00007ffff3d5f468 in QCoreApplication::notifyInternal2 (receiver=0x60300050c260, event=0x60c0004aac40)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1134
#51 0x00007ffff3d5f629 in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1575
#52 0x00007ffff3d62bb1 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x60e000000900)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1932
#53 0x00007ffff3d62e98 in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1789
#54 0x00007ffff400b833 in postEventSourceDispatch (s=0x60b00003ef70) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:244
#55 0x00007ffff283de5c in g_main_dispatch (context=0x60f000007930) at ../glib/gmain.c:3476
#56 g_main_context_dispatch_unlocked (context=0x60f000007930) at ../glib/gmain.c:4284
#57 0x00007ffff2898f18 in g_main_context_iterate_unlocked.isra.0
    (context=context@entry=0x60f000007930, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4349
#58 0x00007ffff283bad3 in g_main_context_iteration (context=0x60f000007930, may_block=1) at ../glib/gmain.c:4414
#59 0x00007ffff400b14c in QEventDispatcherGlib::processEvents (this=0x6030000412f0, flags=...)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:394
#60 0x00007ffff3d6addb in QEventLoop::exec (this=this@entry=0x7fffffffabe0, flags=..., flags@entry=...)
    at /home/nico/workspace/qt6/qtbase/src/corelib/global/qflags.h:34
#61 0x00007ffff3d677d2 in QCoreApplication::exec () at /home/nico/workspace/qt6/qtbase/src/corelib/global/qflags.h:74
#62 0x00000000004563fc in main (argc=1, argv=0x7fffffffd738) at /home/nico/kde/src/dolphin/src/main.cpp:259

SOFTWARE/OS VERSIONS
KDE Plasma Version: master
KDE Frameworks Version: master
Qt Version: 6.7

ADDITIONAL INFORMATION
Comment 1 Bug Janitor Service 2024-04-06 14:24:18 UTC
A possibly relevant merge request was started @ https://invent.kde.org/system/dolphin/-/merge_requests/758
Comment 2 Nicolas Fella 2024-04-08 10:39:55 UTC
*** Bug 485221 has been marked as a duplicate of this bug. ***
Comment 3 Jin Liu 2024-04-11 11:20:05 UTC
Git commit 39ce7268627ca3ac28b24a3ea4ae266459833cb7 by Jin Liu, on behalf of Joshua Goins.
Committed on 11/04/2024 at 11:20.
Pushed by genericity into branch 'master'.

DisabledActionNotifier: Prevent null dereferences

This prevents a crash on startup where it tries to delete a null
QShortcut because it didn't check if the QShortcut actually exists in
the QHash.

M  +12   -6    src/disabledactionnotifier.cpp

https://invent.kde.org/system/dolphin/-/commit/39ce7268627ca3ac28b24a3ea4ae266459833cb7