Bug 476173

Summary: Dolphin crashes on close after closing terminal panel
Product: [Applications] dolphin Reporter: Nicolas Fella <nicolas.fella>
Component: generalAssignee: Dolphin Bug Assignee <dolphin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: kfm-devel, nate
Priority: NOR Keywords: drkonqi, qt6
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Nicolas Fella 2023-10-27 20:16:40 UTC
Application: dolphin (23.11.70)
 (Compiled from sources)
Qt Version: 6.6.1
Frameworks Version: 5.240.0
Operating System: Linux 6.5.8-200.fc38.x86_64 x86_64
Windowing System: Wayland
Distribution: Fedora Linux 38 (KDE Plasma)
DrKonqi: 5.27.80 [KCrashBackend]

-- Information about the crash:
- Open Dolphin
- Open Terminal panel via F4
- In terminal press Ctrl+D to close the terminal
- Close Dolphin

The crash can be reproduced every time.

-- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5  0x00007f56963abe1e in std::__atomic_base<QObjectPrivate::ConnectionData*>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=0x60) at /usr/include/c++/13/bits/atomic_base.h:835
#6  std::atomic<QObjectPrivate::ConnectionData*>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=0x60) at /usr/include/c++/13/atomic:577
#7  QAtomicOps<QObjectPrivate::ConnectionData*>::loadRelaxed<QObjectPrivate::ConnectionData*>(std::atomic<QObjectPrivate::ConnectionData*> const&) (_q_value=<error reading variable: Cannot access memory at address 0x60>) at /home/nico/workspace/qt6/qtbase/src/corelib/thread/qatomic_cxx11.h:201
#8  QBasicAtomicPointer<QObjectPrivate::ConnectionData>::loadRelaxed() const (this=0x60) at /home/nico/workspace/qt6/qtbase/src/corelib/thread/qbasicatomic.h:172
#9  QMetaObjectPrivate::disconnect(QObject const*, int, QMetaObject const*, QObject const*, int, void**, QMetaObjectPrivate::DisconnectType) (sender=0x245a140, signal_index=0, smeta=0x7f5696806060 <QObject::staticMetaObject>, receiver=0x1adb7b0, method_index=-1, slot=0x7ffc4252bd50, disconnectType=QMetaObjectPrivate::DisconnectAll) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:3634
#10 0x00007f56963ac6fa in QObject::disconnectImpl(QObject const*, void**, QObject const*, void**, QMetaObject const*) (sender=0x245a140, signal=signal@entry=0x7ffc4252bd40, receiver=receiver@entry=0x1adb7b0, slot=slot@entry=0x7ffc4252bd50, senderMetaObject=0x7f5696806060 <QObject::staticMetaObject>) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:5277
#11 0x0000000000487638 in QObject::disconnect<void (QObject::*)(QObject*), void (TerminalPanel::*)()>(QtPrivate::FunctionPointer<void (QObject::*)(QObject*)>::Object const*, void (QObject::*)(QObject*), QtPrivate::FunctionPointer<void (TerminalPanel::*)()>::Object const*, void (TerminalPanel::*)()) (slot=(void (TerminalPanel::*)(TerminalPanel * const)) 0x485e70 <TerminalPanel::terminalExited()>, receiver=0x1adb7b0, signal=(void (QObject::*)(QObject * const, QObject *)) 0x7f56963add40 <QObject::destroyed(QObject*)>, sender=<optimized out>) at /home/nico/kde/usr/include/QtCore/qobject.h:263
#12 TerminalPanel::~TerminalPanel() (this=0x1adb7b0, __in_chrg=<optimized out>) at /home/nico/kde/src/dolphin/src/panels/terminal/terminalpanel.cpp:53
#13 0x0000000000487709 in TerminalPanel::~TerminalPanel() (this=0x1adb7b0, __in_chrg=<optimized out>) at /home/nico/kde/src/dolphin/src/panels/terminal/terminalpanel.cpp:55
#14 0x00007f56963ae805 in QObjectPrivate::deleteChildren() (this=this@entry=0x1ab90d0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:2206
#15 0x00007f56975cef08 in QWidget::~QWidget() (this=this@entry=0x1d00210, __in_chrg=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:1537
#16 0x00007f56976d9a7d in QDockWidget::~QDockWidget() (this=this@entry=0x1d00210, __in_chrg=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/widgets/widgets/qdockwidget.cpp:1358
#17 0x00000000004c2e5d in DolphinDockWidget::~DolphinDockWidget() (this=0x1d00210, __in_chrg=<optimized out>) at /home/nico/kde/src/dolphin/src/dolphindockwidget.cpp:56
#18 DolphinDockWidget::~DolphinDockWidget() (this=0x1d00210, __in_chrg=<optimized out>) at /home/nico/kde/src/dolphin/src/dolphindockwidget.cpp:56
#19 0x00007f56963ae805 in QObjectPrivate::deleteChildren() (this=this@entry=0x19d10a0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:2206
#20 0x00007f56975cef08 in QWidget::~QWidget() (this=0x196f790, __in_chrg=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:1537
#21 0x00007f5698c405d9 in KMainWindow::~KMainWindow() (this=0x196f790, __in_chrg=<optimized out>) at /home/nico/kde/src/kxmlgui/src/kmainwindow.cpp:436
#22 0x00007f5698cbaad4 in KXmlGuiWindow::~KXmlGuiWindow() (this=0x196f790, __vtt_parm=0x50bcb8 <VTT for DolphinMainWindow+8>, __in_chrg=<optimized out>) at /home/nico/kde/src/kxmlgui/src/kxmlguiwindow.cpp:216
#23 0x000000000046250d in DolphinMainWindow::~DolphinMainWindow() (this=this@entry=0x196f790, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/nico/kde/src/dolphin/src/dolphinmainwindow.cpp:224
#24 0x0000000000462559 in DolphinMainWindow::~DolphinMainWindow() (this=0x196f790, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/nico/kde/src/dolphin/src/dolphinmainwindow.cpp:224
#25 0x00007f56963a6708 in QObject::event(QEvent*) (this=0x196f790, e=0x24e5a40) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:1424
#26 0x00007f5698c42a44 in KMainWindow::event(QEvent*) (this=0x196f790, ev=0x24e5a40) at /home/nico/kde/src/kxmlgui/src/kmainwindow.cpp:911
#27 0x00007f5698cbac2b in KXmlGuiWindow::event(QEvent*) (this=0x196f790, ev=0x24e5a40) at /home/nico/kde/src/kxmlgui/src/kxmlguiwindow.cpp:220
#28 0x00007f569757f981 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x196f790, e=0x24e5a40) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3295
#29 0x00007f5696359b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x196f790, event=0x24e5a40) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1121
#30 0x00007f5696359ca9 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1539
#31 0x00007f569635d3c7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x17572e0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1901
#32 0x00007f569635d6d8 in QCoreApplication::sendPostedEvents(QObject*, int) (receiver=<optimized out>, event_type=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1760
#33 0x00007f56965f8303 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x17b82c0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#34 0x00007f5694fe44fc in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#35 0x00007f56950426b8 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#36 0x00007f5694fe1b83 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#37 0x00007f56965f7d3c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1759b90, flags=...) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#38 0x00007f56963656ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc4252c570, flags=..., flags@entry=...) at /home/nico/workspace/qt6/qtbase/src/corelib/global/qflags.h:34
#39 0x00007f56963620b2 in QCoreApplication::exec() () at /home/nico/workspace/qt6/qtbase/src/corelib/global/qflags.h:74
#40 0x00007f5696bb050c in QGuiApplication::exec() () at /home/nico/workspace/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:1925
#41 0x00007f569757f8f5 in QApplication::exec() () at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:2574
#42 0x00000000004499de in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde/src/dolphin/src/main.cpp:255
[Inferior 1 (process 160462) detached]

Reported using DrKonqi
Comment 1 Nate Graham 2023-10-30 16:41:07 UTC
Cannot reproduce with today's git master on Wayland with Qt 6.5.2