Bug 477540

Summary: Dolphin crashed while opening a newly created video file
Product: [Applications] dolphin Reporter: dani <danii.dias>
Component: generalAssignee: Dolphin Bug Assignee <dolphin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: fanzhuyifan, kde, kfm-devel, meven29
Priority: NOR Keywords: drkonqi
Version: 23.08.3   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Backtrace with debug symbols

Description dani 2023-11-26 06:17:42 UTC
Application: dolphin (23.08.3)

Qt Version: 5.15.11
Frameworks Version: 5.112.0
Operating System: Linux 6.6.2-zen1-1-zen x86_64
Windowing System: Wayland
Distribution: Arch Linux
DrKonqi: 5.27.9 [KCrashBackend]

-- Information about the crash:
Dolphin crashed when I tried to open a .mkv video file that had just been created (and was also still being written to). Dolphin itself was already open for about an hour and I had no issues opening any files before this one.

In case it matters, thumbnail previews for videos were turned off.

The crash does not seem to be reproducible.

-- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault

[KCrash Handler]
#4  0x0000000000000020 in  ()
#5  0x00007f760f2a8d24 in KItemListController::onRelease(QPointF const&, QFlags<Qt::KeyboardModifier>, QFlags<Qt::MouseButton>, bool) () at /usr/lib/libdolphinprivate.so.5
#6  0x00007f760f2a8e30 in KItemListController::mouseReleaseEvent(QGraphicsSceneMouseEvent*, QTransform const&) () at /usr/lib/libdolphinprivate.so.5
#7  0x00007f760f2ab0eb in KItemListController::processEvent(QEvent*, QTransform const&) () at /usr/lib/libdolphinprivate.so.5
#8  0x00007f760f2b142e in KItemListView::event(QEvent*) () at /usr/lib/libdolphinprivate.so.5
#9  0x00007f760dd788ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#10 0x00007f760d09c168 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#11 0x00007f760e095b20 in  () at /usr/lib/libQt5Widgets.so.5
#12 0x00007f760e09a57a in  () at /usr/lib/libQt5Widgets.so.5
#13 0x00007f760e09bb7e in QGraphicsScene::mouseReleaseEvent(QGraphicsSceneMouseEvent*) () at /usr/lib/libQt5Widgets.so.5
#14 0x00007f760e0a10c4 in QGraphicsScene::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#15 0x00007f760dd788ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#16 0x00007f760d09c168 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#17 0x00007f760e0c955e in QGraphicsView::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/libQt5Widgets.so.5
#18 0x00007f760ddaf1a1 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#19 0x00007f760de5d9e3 in QFrame::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#20 0x00007f760d099142 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#21 0x00007f760dd788ef in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#22 0x00007f760dd7ddaf in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#23 0x00007f760d09c168 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#24 0x00007f760dd7c0ea in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /usr/lib/libQt5Widgets.so.5
#25 0x00007f760ddcceb5 in  () at /usr/lib/libQt5Widgets.so.5
#26 0x00007f760ddcec07 in  () at /usr/lib/libQt5Widgets.so.5
#27 0x00007f760dd788ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#28 0x00007f760d09c168 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#29 0x00007f760d54196c in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5
#30 0x00007f760d52a6f5 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#31 0x00007f760a75ece5 in  () at /usr/lib/libQt5WaylandClient.so.5
#32 0x00007f760b10df69 in  () at /usr/lib/libglib-2.0.so.0
#33 0x00007f760b16c327 in  () at /usr/lib/libglib-2.0.so.0
#34 0x00007f760b10c162 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#35 0x00007f760d0eaf9f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#36 0x00007f760d09ae74 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#37 0x00007f760d09c313 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#38 0x000055bef6365db8 in  ()
#39 0x00007f760c845cd0 in  () at /usr/lib/libc.so.6
#40 0x00007f760c845d8a in __libc_start_main () at /usr/lib/libc.so.6
#41 0x000055bef6366575 in  ()
[Inferior 1 (process 2109) detached]

Reported using DrKonqi
Comment 1 fanzhuyifan 2023-11-26 06:51:31 UTC
Hi, thank you for your bug report!

Could you try to obtain debug symbols for your backtrace? There are detailed instructions at https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports

In particular, on Arch Linux, if you reproduce it, I think you can just click Install Debug Symbols from Dr. Konqi.
Comment 2 dani 2023-11-26 07:48:50 UTC
Created attachment 163492 [details]
Backtrace with debug symbols

output of `bt full` within gdb.
Comment 3 Méven Car 2023-11-26 14:52:42 UTC
The issue comes from here:

```
#6  0x00007f760f2a8d24 in KItemListController::onRelease(QPointF const&, QFlags<Qt::KeyboardModifier>, QFlags<Qt::MouseButton>, bool) (this=this@entry=0x55bef7a92600, pos=..., modifiers=..., modifiers@entry=..., buttons=buttons@entry=..., touch=touch@entry=false) at /usr/src/debug/dolphin/dolphin-23.08.3/src/kitemviews/kitemlistcontroller.cpp:1779
        singleClickActivation = <optimized out>
        emitItemActivated = true
        isAboveSelectionToggle = <optimized out>
        controlPressed = <optimized out>
        shiftOrControlPressed = <optimized out>
        index = std::optional<int> = {[contained value] = 0}
        rubberBand = <optimized out>
        rubberBandRelease = <optimized out>
```

From src/kitemviews/kitemlistcontroller.cpp:
```
        if (buttons & Qt::LeftButton) {
            bool emitItemActivated = true;
            if (m_view->isAboveExpansionToggle(index.value(), pos)) {
                const bool expanded = m_model->isExpanded(index.value());
                m_model->setExpanded(index.value(), !expanded);

                Q_EMIT itemExpansionToggleClicked(index.value());
                emitItemActivated = false;
            } else if (shiftOrControlPressed && m_selectionBehavior != SingleSelection) {
                // The mouse click should only update the selection, not trigger the item, except when
                // we are in single selection mode
                emitItemActivated = false;
            } else {
#line 1779:
                const bool singleClickActivation = m_view->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick) || m_singleClickActivationEnforced;
                if (!singleClickActivation) {
                    emitItemActivated = touch && !m_selectionMode;
                } else {
                    // activate on single click only if we didn't come from a rubber band release
                    emitItemActivated = !rubberBandRelease;
                }
            }
````

m_view seems like it could be null, or m_view->style(), both make little sense and should not be possible.

Do you use the folder panel ?

Do you use split view ?

What is the style you are using ?
Comment 4 dani 2023-11-26 17:59:29 UTC
I don't use the folder panel or split view, though I had tabs to other folders open.
I use the "details" view mode (with name, file size and modified date columns) and basically the only change I did to the style was add a "refresh view" (F5) button to the toolbar.
Comment 5 dani 2023-11-26 20:35:43 UTC
I was able to reproduce this again after a reboot by doing the following: opening Dolphin and minimizing it -> changing the menu transparency from opaque to transparent on Breeze's application style -> maximizing Dolphin and trying to open a file.
After the first crash, I am not able to reproduce this again after doing these same steps on the same Plasma session.
Comment 6 David Edmundson 2023-11-27 09:53:20 UTC

*** This bug has been marked as a duplicate of bug 477288 ***