Bug 192139

Summary: Dolphin crashes on drag and drop copy operation of audio files on the breadcrumb bar
Product: [Applications] dolphin Reporter: Panagiotis Papadopoulos <pano_90>
Component: generalAssignee: Dolphin Bug Assignee <dolphin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: andresbajotierra, jtamate, kdelibs-bugs
Priority: NOR    
Version: 16.12.2   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In: 4.11.0
Sentry Crash Report:

Description Panagiotis Papadopoulos 2009-05-09 16:32:02 UTC
Application that crashed: dolphin
Version of the application: 1.2.80
KDE Version: 4.2.85 (KDE 4.2.85 (KDE 4.3 Beta1))
Qt Version: 4.5.1
Operating System: Linux 2.6.29-ARCH i686

What I was doing when the application crashed:
I just found this pretty hard to reproduce crash ;-)

1. Open Dolphin move to a folder (e.g. /home/user/test) with some subfolders and enter one of those subfolders (e.g. /home/user/test/test1
2. Drag an audio file on the little arrow on the bread crumb bar and drop the file on another subfolder (e.g. /home/user/test/test2), select "Copy"
3. Redo step 2 again
4. The "File already exists" dialog will appear,  select "Overwrite" (this also reminds me of my other wish https://bugs.kde.org/show_bug.cgi?id=190471)

Dolphin should crash now. If it doesn't, you might have to try these steps several times, with different files and directories to get Dolphin crahsed.

Here on a recent version of trunk.

Thank you

 -- Backtrace:
Application: Dolphin (dolphin), signal: Aborted
[KCrash Handler]
#6  0xb808e424 in __kernel_vsyscall ()
#7  0xb6420471 in raise () from /lib/libc.so.6
#8  0xb6421ca4 in abort () from /lib/libc.so.6
#9  0xb6461deb in malloc_printerr () from /lib/libc.so.6
#10 0xb64636e2 in free () from /lib/libc.so.6
#11 0xb6636761 in operator delete () from /usr/lib/libstdc++.so.6
#12 0xb6a4a4af in QWidgetPrivate::deleteExtra () from /usr/lib/libQtGui.so.4
#13 0xb6a4a645 in QWidgetPrivate::~QWidgetPrivate () from /usr/lib/libQtGui.so.4
#14 0xb6803e56 in QObject::~QObject () from /usr/lib/libQtCore.so.4
#15 0xb6a50a1b in QWidget::~QWidget () from /usr/lib/libQtGui.so.4
#16 0xb7773948 in KWidgetJobTracker::Private::ProgressWidget::~ProgressWidget () from /usr/lib/libkdeui.so.5
#17 0xb67fb505 in qDeleteInEventHandler () from /usr/lib/libQtCore.so.4
#18 0xb67fca0b in QObject::event () from /usr/lib/libQtCore.so.4
#19 0xb6a54401 in QWidget::event () from /usr/lib/libQtGui.so.4
#20 0xb69ff6ac in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#21 0xb6a06e44 in QApplication::notify () from /usr/lib/libQtGui.so.4
#22 0xb777bd9a in KApplication::notify () from /usr/lib/libkdeui.so.5
#23 0xb67ec74b in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#24 0xb67ed208 in QCoreApplicationPrivate::sendPostedEvents () from /usr/lib/libQtCore.so.4
#25 0xb67ed3dd in QCoreApplication::sendPostedEvents () from /usr/lib/libQtCore.so.4
#26 0xb6817def in ?? () from /usr/lib/libQtCore.so.4
#27 0xb5e87718 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#28 0xb5e8ac7b in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#29 0xb5e8adf8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#30 0xb6817a1c in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#31 0xb6a9e5c5 in ?? () from /usr/lib/libQtGui.so.4
#32 0xb67eacd9 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#33 0xb67eb122 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#34 0xb67ed49f in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#35 0xb69ff527 in QApplication::exec () from /usr/lib/libQtGui.so.4
#36 0x0807a64f in _start ()
Comment 1 Panagiotis Papadopoulos 2009-10-02 23:29:23 UTC
I again tried to reproduce it and got the following backtrace. This time it was a lot harder to reproduce it, I had to try it very often...

Application: Dolphin (dolphin), signal: Segmentation fault
[KCrash Handler]
#6  ~QObject (this=0x85d0580) at kernel/qobject.cpp:772
#7  0xb6915454 in ~QAction (this=0x85d0580) at kernel/qaction.cpp:622
#8  0xb6714bff in QObjectPrivate::deleteChildren (this=0x8a53488) at kernel/qobject.cpp:1846
#9  0xb671ceef in ~QObject (this=0x8243a18) at kernel/qobject.cpp:836
#10 0xb7b11616 in ~KonqOperations (this=0x8243a18) at /home/pano/Projekte/build/kde-trunk/kdebase/src/kdebase/apps/lib/konq/konq_operations.cpp:88
#11 0xb67148c5 in qDeleteInEventHandler (o=0x2) at kernel/qobject.cpp:3814
#12 0xb6715dcb in QObject::event (this=0x8243a18, e=0x8a685f0) at kernel/qobject.cpp:1093
#13 0xb6919964 in QApplicationPrivate::notify_helper (this=0x81e7068, receiver=0x8243a18, e=0x8a685f0) at kernel/qapplication.cpp:4056
#14 0xb692104c in QApplication::notify (this=0xbf815754, receiver=0x8243a18, e=0x8a685f0) at kernel/qapplication.cpp:3603
#15 0xb761dce6 in KApplication::notify (this=0xbf815754, receiver=0x8243a18, event=0x8a685f0) at /home/pano/Projekte/build/kde-trunk/kdelibs/src/kdelibs/kdeui/kernel/kapplication.cpp:302
#16 0xb6705fcb in QCoreApplication::notifyInternal (this=0xbf815754, receiver=0x8243a18, event=0x8a685f0) at kernel/qcoreapplication.cpp:610
#17 0xb6706bb2 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x81a4b18) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#18 0xb6706d7d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1140
#19 0xb6730a9f in postEventSourceDispatch (s=0x81dd520) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#20 0xb5d1ad98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#21 0xb5d1e3e0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#22 0xb5d1e513 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#23 0xb67306cc in QEventDispatcherGlib::processEvents (this=0x81daf90, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:327
#24 0xb69b7695 in QGuiEventDispatcherGlib::processEvents (this=0x81daf90, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202
#25 0xb6704579 in QEventLoop::processEvents (this=0xbf8156b4, flags=) at kernel/qeventloop.cpp:149
#26 0xb67049ca in QEventLoop::exec (this=0xbf8156b4, flags={i = 0}) at kernel/qeventloop.cpp:201
#27 0xb6706e3f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#28 0xb69197e7 in QApplication::exec () at kernel/qapplication.cpp:3525
#29 0x08076828 in main (argc=1, argv=0xbf815934) at /home/pano/Projekte/build/kde-trunk/kdebase/src/kdebase/apps/dolphin/src/main.cpp:94
Comment 2 Dario Andres 2009-10-03 21:46:28 UTC
I think managed to reproduce this crash here using:

Qt: 4.6.0 (Qt git branch 4.6 commit f3d15516572394b6bcd44a89dd66516fa4eba56e
        Date:   Fri Sep 25 10:21:23 2009 +1000)
KDE: 4.3.70 (KDE 4.3.70 (KDE 4.4 >= 20091002))
kdelibs svn rev. 1030916 / kdebase svn rev. 1030916
on ArchLinux i686 - Kernel 2.6.30.6

---

In order to reproduce it I had to disable the Plasma filejobs tracking (so file operations will use the old-style dialogs)
After the "Overwrite" dialog appeared, I wait some seconds, and then I clicked the "Down arrow" in the copy dialog (the one that will show more info). (it is a false click as the Overwrite dialog is modal.. the file-copy dialog is not accesible).
Finally clicking the Overwrite button crashed Dolphin

---

When I tried to reproduce this I also got a backtrace similar to bug 200148, so they could be related.

----

Darn, I'm getting different backtraces in a non-reproducible way.. :-\

-----

Backtrace:

Application: Dolphin (dolphin), signal: Segmentation fault
[KCrash Handler]
#6  0xb7b03eca in QBasicAtomicInt::deref () from /home/kde-devel/kde/lib/libsoprano.so.4
#7  0xb686d1c9 in ~QRegion (this=0x8c269f4) at painting/qregion.cpp:3921
#8  0xb6886dd6 in ~QWindowSurfacePrivate (this=0x8c269e0) at painting/qwindowsurface.cpp:50
#9  0xb6886174 in ~QWindowSurface (this=0x8c11860) at painting/qwindowsurface.cpp:124
#10 0xb68f3929 in ~QX11WindowSurface (this=0x8c11860) at painting/qwindowsurface_x11.cpp:87
#11 0xb68edbed in ~QWidgetBackingStore (this=0x8c2c7d0) at painting/qbackingstore.cpp:848
#12 0xb66f0c1a in QWidgetPrivate::deleteExtra (this=0x894b030) at kernel/qwidget.cpp:1601
#13 0xb66ed43c in ~QWidgetPrivate (this=0x894b030) at kernel/qwidget.cpp:246
#14 0xb63804fd in QScopedPointerDeleter<QObjectData>::cleanup (pointer=0x894b030) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:62
#15 0xb63d4e99 in ~QScopedPointer (this=0x892834c) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:100
#16 0xb63cd893 in ~QObject (this=0x8928348) at kernel/qobject.cpp:990
#17 0xb66efc26 in ~QWidget (this=0x8928348) at kernel/qwidget.cpp:1489
#18 0xb7699458 in ~ProgressWidget (this=0x8928348) at /home/kde-devel/kde/src/KDE/kdelibs/kdeui/jobs/kwidgetjobtracker_p.h:93
#19 0xb63d3dd2 in qDeleteInEventHandler (o=0x8928348) at kernel/qobject.cpp:4117
#20 0xb63ce846 in QObject::event (this=0x8928348, e=0x8c26838) at kernel/qobject.cpp:1221
#21 0xb67025b4 in QWidget::event (this=0x8928348, event=0x8c26838) at kernel/qwidget.cpp:8361
#22 0xb66993f2 in QApplicationPrivate::notify_helper (this=0x8524a80, receiver=0x8928348, e=0x8c26838) at kernel/qapplication.cpp:4162
#23 0xb6699257 in QApplication::notify (this=0xbff8c7ac, receiver=0x8928348, e=0x8c26838) at kernel/qapplication.cpp:4127
#24 0xb76a14ea in KApplication::notify (this=0xbff8c7ac, receiver=0x8928348, event=0x8c26838) at /home/kde-devel/kde/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:302
#25 0xb63b71ed in QCoreApplication::notifyInternal (this=0xbff8c7ac, receiver=0x8928348, event=0x8c26838) at kernel/qcoreapplication.cpp:704
#26 0xb668a347 in QCoreApplication::sendEvent (receiver=0x8928348, event=0x8c26838) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#27 0xb63b82a1 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x84ee4e0) at kernel/qcoreapplication.cpp:1345
#28 0xb63b7f59 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1238
#29 0xb67591b8 in QCoreApplication::sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#30 0xb63ed7d6 in postEventSourceDispatch (s=0x852b518) at kernel/qeventdispatcher_glib.cpp:210
#31 0xb5b1dd98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#32 0xb5b213e0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#33 0xb5b21513 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#34 0xb63ee65a in QEventDispatcherGlib::processEvents (this=0x85236f0, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:328
#35 0xb67580c2 in QGuiEventDispatcherGlib::processEvents (this=0x85236f0, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202
#36 0xb63b464f in QEventLoop::processEvents (this=0xbff8c6fc, flags={i = 36}) at kernel/qeventloop.cpp:149
#37 0xb63b4794 in QEventLoop::exec (this=0xbff8c6fc, flags={i = 0}) at kernel/qeventloop.cpp:201
#38 0xb63b78c9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#39 0xb669717a in QApplication::exec () at kernel/qapplication.cpp:3567
#40 0x080798f5 in main (argc=1, argv=0xbff8c984) at /home/kde-devel/kde/src/KDE/kdebase/apps/dolphin/src/main.cpp:94
Comment 3 Jeroen van Meeuwen (Kolab Systems) 2012-08-24 16:18:34 UTC
Resetting assignee to default as per bug #305719
Comment 4 Jaime Torres 2012-10-27 08:51:12 UTC
The backtrace is totally different, but following the steps described here, dolphin still crash.
See bug 309076
Comment 5 Frank Reininghaus 2013-07-02 17:31:50 UTC
Git commit 669ee3250d233b96bc2f2e63865b048d33215674 by Frank Reininghaus.
Committed on 02/07/2013 at 17:27.
Pushed by freininghaus into branch 'master'.

Fix crash when dropping URLs on the URL navigator's drop down menus

The problem was that the files were copied/moved inside the nested event
loop of the drag, which caused problems if the "File exists" dialog was
shown.

The solution is to make the copy/move operation delayed, such that it is
executed in the main event loop.

Note that dropping files on these menus does apparently not work at the
moment when using the Oxygen style (see bug 310016).
Related: bug 256338, bug 293220, bug 309076
FIXED-IN: 4.11.0
REVIEW: 111273

M  +30   -2    dolphin/src/dolphinviewcontainer.cpp
M  +15   -0    dolphin/src/dolphinviewcontainer.h

http://commits.kde.org/kde-baseapps/669ee3250d233b96bc2f2e63865b048d33215674