Bug 476029

Summary: Dolphin crashes when trying to delete file, after using custom service menu
Product: [Applications] dolphin Reporter: fanzhuyifan
Component: generalAssignee: Dolphin Bug Assignee <dolphin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: fanzhuyifan, kfm-devel
Priority: NOR Keywords: drkonqi
Version: 23.08.2   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=445334
https://bugs.kde.org/show_bug.cgi?id=427149
https://bugs.kde.org/show_bug.cgi?id=420178
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: full trace containing all threads
New crash information added by DrKonqi
New crash information added by DrKonqi

Description fanzhuyifan 2023-10-24 02:27:27 UTC
Application: dolphin (23.08.2)

Qt Version: 5.15.11
Frameworks Version: 5.111.0
Operating System: Linux 6.5.8-arch1-1 x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 5.27.8 [KCrashBackend]

-- Information about the crash:
Steps to reproduce:

1. Create and install a servicemenu file (that does nothing) as follows:

```
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin,all/allfiles,
ExcludeServiceTypes=kdedevice/*
Encoding=UTF-8
Icon=krename
Actions=Clean;

[Desktop Action Clean]
Name=Clean Name
Icon=edit-rename
Exec="/usr/bin/echo" %F
```

2. open dolphin
3. right click any file, and select the Clean Name servicemenu
4. Press delete to delete the file
5. dolphin crashes.

The crash can be reproduced every time.

-- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  0x00007f5d4e2a051b in QMetaObject::cast(QObject const*) const (this=0x7f5d4f4857e0 <QAction::staticMetaObject>, obj=obj@entry=0x55fd207a1c30) at kernel/qmetaobject.cpp:389
#7  0x00007f5d4e2a055a in QMetaObject::cast(QObject*) const (this=<optimized out>, obj=obj@entry=0x55fd207a1c30) at kernel/qmetaobject.cpp:378
#8  0x00007f5d4ef990d6 in qobject_cast<QAction*>(QObject*) (object=0x55fd207a1c30, object=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:519
#9  qWidgetShortcutContextMatcher(QObject*, Qt::ShortcutContext) (object=0x55fd207a1c30, context=Qt::WindowShortcut) at kernel/qshortcut.cpp:112
#10 0x00007f5d4e775f2c in QShortcutEntry::correctContext() const (this=0x55fd1ff86e80) at kernel/qshortcutmap.cpp:79
#11 QShortcutMap::find(QKeyEvent*, int) (this=this@entry=0x55fd1fb930f8, e=e@entry=0x7fff75f24b80, ignoredModifiers=ignoredModifiers@entry=0) at kernel/qshortcutmap.cpp:457
#12 0x00007f5d4e776a65 in QShortcutMap::nextState(QKeyEvent*) (this=this@entry=0x55fd1fb930f8, e=e@entry=0x7fff75f24b80) at kernel/qshortcutmap.cpp:372
#13 0x00007f5d4e7773b7 in QShortcutMap::tryShortcut(QKeyEvent*) (this=0x55fd1fb930f8, e=0x7fff75f24b80) at kernel/qshortcutmap.cpp:328
#14 0x00007f5d4e72be18 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) (window=<optimized out>, timestamp=4092496, keyCode=16777223, modifiers=..., nativeScanCode=119, nativeVirtualKey=65535, nativeModifiers=0, text=..., autorepeat=false, count=1) at kernel/qwindowsysteminterface.cpp:477
#15 0x00007f5d4e745522 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) (e=0x55fd2047be20) at kernel/qguiapplication.cpp:2398
#16 0x00007f5d4e72a6e5 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=...) at kernel/qwindowsysteminterface.cpp:1169
#17 0x00007f5d4b95ec75 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /usr/lib64/libQt5WaylandClient.so.5
#18 0x00007f5d4c10df19 in g_main_dispatch (context=0x7f5d40000ec0) at ../glib/glib/gmain.c:3476
#19 0x00007f5d4c16c2b7 in g_main_context_dispatch_unlocked (context=0x7f5d40000ec0) at ../glib/glib/gmain.c:4284
#20 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7f5d40000ec0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#21 0x00007f5d4c10c112 in g_main_context_iteration (context=0x7f5d40000ec0, may_block=1) at ../glib/glib/gmain.c:4414
#22 0x00007f5d4e2eaf7c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55fd1fbd7090, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#23 0x00007f5d4e29ae74 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff75f24f30, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#24 0x00007f5d4e29c313 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#25 0x00007f5d4e73bf02 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1870
#26 0x00007f5d4ef76cda in QApplication::exec() () at kernel/qapplication.cpp:2832
#27 0x000055fd1eb1adb8 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/dolphin/dolphin-23.08.2/src/main.cpp:255
[Inferior 1 (process 15978) detached]

The reporter indicates this bug may be a duplicate of or related to bug 427149, bug 445334, bug 447694.

Reported using DrKonqi
Comment 1 fanzhuyifan 2023-10-24 02:41:17 UTC
Created attachment 162524 [details]
full trace containing all threads
Comment 2 fanzhuyifan 2023-11-03 02:11:16 UTC
Created attachment 162832 [details]
New crash information added by DrKonqi

dolphin (23.08.2) using Qt 5.15.11

Steps to reproduce:
1. right click a pdf file and choose open with ocular/firefox
2. switch back to the dolphin window and press delete to delete the file

Observed behavior:
Dolphin crashes

-- Backtrace (Reduced):
#8  0x00007f7d99b990d6 in qobject_cast<QAction*>(QObject*) (object=0x55db14355c00, object=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:519
#9  qWidgetShortcutContextMatcher(QObject*, Qt::ShortcutContext) (object=0x55db14355c00, context=Qt::WindowShortcut) at kernel/qshortcut.cpp:112
#10 0x00007f7d99375f2c in QShortcutEntry::correctContext() const (this=0x55db13ccb418) at kernel/qshortcutmap.cpp:79
#11 QShortcutMap::find(QKeyEvent*, int) (this=this@entry=0x55db138d60f8, e=e@entry=0x7ffc13d82d30, ignoredModifiers=ignoredModifiers@entry=0) at kernel/qshortcutmap.cpp:457
#12 0x00007f7d99376a65 in QShortcutMap::nextState(QKeyEvent*) (this=this@entry=0x55db138d60f8, e=e@entry=0x7ffc13d82d30) at kernel/qshortcutmap.cpp:372
Comment 3 fanzhuyifan 2023-11-09 21:44:24 UTC
Created attachment 162995 [details]
New crash information added by DrKonqi

dolphin (23.08.2) using Qt 5.15.11

Dolphin crashes when I try to delete pdf files after opening them with ocular.

-- Backtrace (Reduced):
#8  0x00007fc9679990d6 in qobject_cast<QAction*>(QObject*) (object=0x55bdaddfa700, object=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:519
#9  qWidgetShortcutContextMatcher(QObject*, Qt::ShortcutContext) (object=0x55bdaddfa700, context=Qt::WindowShortcut) at kernel/qshortcut.cpp:112
#10 0x00007fc967175f2c in QShortcutEntry::correctContext() const (this=0x55bdad4ef130) at kernel/qshortcutmap.cpp:79
#11 QShortcutMap::find(QKeyEvent*, int) (this=this@entry=0x55bdad10a0f8, e=e@entry=0x7ffe8ed75a10, ignoredModifiers=ignoredModifiers@entry=0) at kernel/qshortcutmap.cpp:457
#12 0x00007fc967176a65 in QShortcutMap::nextState(QKeyEvent*) (this=this@entry=0x55bdad10a0f8, e=e@entry=0x7ffe8ed75a10) at kernel/qshortcutmap.cpp:372
Comment 4 fanzhuyifan 2023-11-09 21:53:57 UTC
An update: for me this bug is reproducible 100% when I use items from the right click menu, for example Share-Send via bluetooth, and then delete any file in the same folder, not just the file I right clicked on.
Comment 5 fanzhuyifan 2023-11-16 03:57:40 UTC
I am closing this as fixed since this doesn't happen on neon unstable.