Bug 368199 - Dolphin crashes when I copy files by dragging files from one tab to another
Summary: Dolphin crashes when I copy files by dragging files from one tab to another
Status: RESOLVED FIXED
Alias: None
Product: dolphin
Classification: Applications
Component: general (show other bugs)
Version: 16.12.2
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Dolphin Bug Assignee
URL:
Keywords: drkonqi
: 362719 366301 380822 388683 392367 392423 404914 (view as bug list)
Depends on:
Blocks:
 
Reported: 2016-09-03 16:08 UTC by madcatx
Modified: 2019-03-09 18:39 UTC (History)
10 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description madcatx 2016-09-03 16:08:03 UTC
Application: dolphin (16.04.3)

Qt Version: 5.6.1
Frameworks Version: 5.25.0
Operating System: Linux 4.6.7-300.fc24.x86_64 x86_64
Distribution (Platform): Fedora RPMs

-- Information about the crash:
- What I was doing when the application crashed:

I have been observing this crash for some time now both on my Arch Linux laptop and Fedora 24 desktop. I can reproduce this quite reliably like this
1) Open two tabs in Dolphin, display the source directory and the target directory in the other one
2) Select files to copy from the source directory. The bug seems easier to reproduce when multiple files are selected but it might as well be a coincidence.
3a) Drag the files to the other tab.
3b) As I move the cursor down from the tabs pane to the folder view the cursor crosses the "current path" bar. This sometimes causes Dolphin to display a list of directories contained in the directory whose entry I happened to cross with the cursor.
3c) Move the cursor away from the directories list and release the mouse. Dolphin displays a menu asking me if I want to copy the files, move them etc.
4) Select copy. The copying process starts.
5) If the "list of directories" mentioned in step "3b" stays displayed (which it most likely shouldn't), Dolphin is very likely to crash.

The crash doesn't seem to happen if I move the files around using CTRL+C, CTRL+V.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Dolphin (dolphin), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f325e4a0940 (LWP 24226))]

Thread 5 (Thread 0x7f3244b74700 (LWP 24245)):
#0  0x00007f326d6ea3ed in poll () from /lib64/libc.so.6
#1  0x00007f3268d63a06 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0
#2  0x00007f3268d63b1c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007f326e4ef24b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#4  0x00007f326e49e5ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#5  0x00007f326e2fd343 in QThread::exec() () from /lib64/libQt5Core.so.5
#6  0x00007f326e30199a in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#7  0x00007f326b2895ca in start_thread () from /lib64/libpthread.so.0
#8  0x00007f326d6f5f6d in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f324cc1d700 (LWP 24239)):
#0  0x00007f326b28ebd0 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f324e0019a3 in radeon_drm_cs_emit_ioctl () from /usr/lib64/dri/radeonsi_dri.so
#2  0x00007f324e0010e7 in impl_thrd_routine () from /usr/lib64/dri/radeonsi_dri.so
#3  0x00007f326b2895ca in start_thread () from /lib64/libpthread.so.0
#4  0x00007f326d6f5f6d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f324f8d5700 (LWP 24228)):
#0  0x00007f326d6ea3ed in poll () from /lib64/libc.so.6
#1  0x00007f3268d63a06 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0
#2  0x00007f3268d63b1c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007f326e4ef24b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#4  0x00007f326e49e5ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#5  0x00007f326e2fd343 in QThread::exec() () from /lib64/libQt5Core.so.5
#6  0x00007f326e6f5559 in QDBusConnectionManager::run() () from /lib64/libQt5DBus.so.5
#7  0x00007f326e30199a in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#8  0x00007f326b2895ca in start_thread () from /lib64/libpthread.so.0
#9  0x00007f326d6f5f6d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f3254cf1700 (LWP 24227)):
#0  0x00007f326d6ea3ed in poll () from /lib64/libc.so.6
#1  0x00007f32698ddf80 in _xcb_conn_wait () from /lib64/libxcb.so.1
#2  0x00007f32698dfb79 in xcb_wait_for_event () from /lib64/libxcb.so.1
#3  0x00007f3257a3bda9 in QXcbEventReader::run() () from /lib64/libQt5XcbQpa.so.5
#4  0x00007f326e30199a in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5
#5  0x00007f326b2895ca in start_thread () from /lib64/libpthread.so.0
#6  0x00007f326d6f5f6d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f325e4a0940 (LWP 24226)):
[KCrash Handler]
#6  0x00007f326d6276f5 in raise () from /lib64/libc.so.6
#7  0x00007f326d6292fa in abort () from /lib64/libc.so.6
#8  0x00007f326d668670 in __libc_message () from /lib64/libc.so.6
#9  0x00007f326d66f738 in malloc_consolidate () from /lib64/libc.so.6
#10 0x00007f326d672235 in _int_malloc () from /lib64/libc.so.6
#11 0x00007f326d674010 in malloc () from /lib64/libc.so.6
#12 0x00007f326ec6eb1f in QClipData::initialize() [clone .part.148] () from /lib64/libQt5Gui.so.5
#13 0x00007f326ec6f07e in qt_intersect_spans(QClipData const*, int*, QT_FT_Span_ const*, QT_FT_Span_ const*, QT_FT_Span_**, int) () from /lib64/libQt5Gui.so.5
#14 0x00007f326ec6f118 in qt_span_fill_clipped(int, QT_FT_Span_ const*, void*) () from /lib64/libQt5Gui.so.5
#15 0x00007f326ec31cac in bool drawLineAA<&(drawPixel(QCosmeticStroker*, int, int, int)), (anonymous namespace)::NoDasher>(QCosmeticStroker*, double, double, double, double, int) () from /lib64/libQt5Gui.so.5
#16 0x00007f326ec35263 in QCosmeticStroker::drawPath(QVectorPath const&) () from /lib64/libQt5Gui.so.5
#17 0x00007f326ec7c1b2 in QRasterPaintEngine::stroke(QVectorPath const&, QPen const&) () from /lib64/libQt5Gui.so.5
#18 0x00007f326ec65625 in QPaintEngineEx::draw(QVectorPath const&) () from /lib64/libQt5Gui.so.5
#19 0x00007f326ec66bf5 in QPaintEngineEx::drawRoundedRect(QRectF const&, double, double, Qt::SizeMode) () from /lib64/libQt5Gui.so.5
#20 0x00007f326ec8eebb in QPainter::drawRoundedRect(QRectF const&, double, double, Qt::SizeMode) () from /lib64/libQt5Gui.so.5
#21 0x00007f324fb1cb68 in Breeze::Helper::renderFrame(QPainter*, QRect const&, QColor const&, QColor const&) const () from /usr/lib64/qt5/plugins/styles/breeze.so
#22 0x00007f324fb2c390 in Breeze::Style::drawFramePrimitive(QStyleOption const*, QPainter*, QWidget const*) const () from /usr/lib64/qt5/plugins/styles/breeze.so
#23 0x00007f324fb38897 in Breeze::Style::drawPrimitive(QStyle::PrimitiveElement, QStyleOption const*, QPainter*, QWidget const*) const () from /usr/lib64/qt5/plugins/styles/breeze.so
#24 0x00007f326f078496 in QCommonStyle::drawControl(QStyle::ControlElement, QStyleOption const*, QPainter*, QWidget const*) const () from /lib64/libQt5Widgets.so.5
#25 0x00007f324fb38aed in Breeze::Style::drawControl(QStyle::ControlElement, QStyleOption const*, QPainter*, QWidget const*) const () from /usr/lib64/qt5/plugins/styles/breeze.so
#26 0x00007f326f1408a4 in QFrame::drawFrame(QPainter*) () from /lib64/libQt5Widgets.so.5
#27 0x00007f326f140900 in QFrame::paintEvent(QPaintEvent*) () from /lib64/libQt5Widgets.so.5
#28 0x00007f326f1ca382 in QAbstractScrollArea::event(QEvent*) () from /lib64/libQt5Widgets.so.5
#29 0x00007f326eff8c0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
#30 0x00007f326effe0ef in QApplication::notify(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
#31 0x00007f326e49f7aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5
#32 0x00007f326f0376ea in QWidgetPrivate::sendPaintEvent(QRegion const&) () from /lib64/libQt5Widgets.so.5
#33 0x00007f326f037d45 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#34 0x00007f326f038a6d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#35 0x00007f326f0378a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#36 0x00007f326f038a6d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#37 0x00007f326f0378a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#38 0x00007f326f038a6d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#39 0x00007f326f0378a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#40 0x00007f326f038a6d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#41 0x00007f326f0378a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#42 0x00007f326f038a6d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#43 0x00007f326f0378a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#44 0x00007f326f038a6d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#45 0x00007f326f0378a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#46 0x00007f326f038a6d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#47 0x00007f326f03895a in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#48 0x00007f326f03895a in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#49 0x00007f326f0378a4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /lib64/libQt5Widgets.so.5
#50 0x00007f326f006f50 in QWidgetBackingStore::doSync() () from /lib64/libQt5Widgets.so.5
#51 0x00007f326f007151 in QWidgetBackingStore::sync() () from /lib64/libQt5Widgets.so.5
#52 0x00007f326f026bef in QWidgetPrivate::syncBackingStore() () from /lib64/libQt5Widgets.so.5
#53 0x00007f326f03ea18 in QWidget::event(QEvent*) () from /lib64/libQt5Widgets.so.5
#54 0x00007f326f15857b in QMainWindow::event(QEvent*) () from /lib64/libQt5Widgets.so.5
#55 0x00007f32722a99e7 in KMainWindow::event(QEvent*) () from /lib64/libKF5XmlGui.so.5
#56 0x00007f32722ee905 in KXmlGuiWindow::event(QEvent*) () from /lib64/libKF5XmlGui.so.5
#57 0x00007f326eff8c0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
#58 0x00007f326effe0ef in QApplication::notify(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
#59 0x00007f326e49f7aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5
#60 0x00007f326e4a184f in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib64/libQt5Core.so.5
#61 0x00007f326e4ef1b3 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQt5Core.so.5
#62 0x00007f3268d636ba in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#63 0x00007f3268d63a70 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0
#64 0x00007f3268d63b1c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#65 0x00007f326e4ef22f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#66 0x00007f326e49e5ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#67 0x00007f326e4a617c in QCoreApplication::exec() () from /lib64/libQt5Core.so.5
#68 0x00007f3274ba24d9 in kdemain () from /lib64/libkdeinit5_dolphin.so
#69 0x00007f326d613731 in __libc_start_main () from /lib64/libc.so.6
#70 0x000055fdf6095b49 in _start ()

Reported using DrKonqi
Comment 1 Spencer Brown 2016-11-28 19:00:45 UTC
I tried for a while to reproduce this, but to no effect.
Archlinux
Frameworks Version: 5.28.0-1
Dolphin: 16.08.3
Comment 2 Elvis Angelaccio 2016-11-29 10:47:32 UTC
This sounds very hard to reproduce, and the backtracke points to Breeze/Qt painting stuff, so hardly a bug on the Dolphin level.

@madcatx: are you using the readon driver?
Comment 3 madcatx 2016-11-29 15:05:29 UTC
Would it be of any help if I recorded a video showing exactly what to do to trigger this? I've seen this happen again quite recently when I tried to copy some stuff from my phone.

I do use the radeon FOSS driver on my desktop (running up-to-date Fedora 24) but I get the same crash even on my laptop with Intel GPU (running up-to-date Arch Linux).
Comment 4 Elvis Angelaccio 2016-12-24 13:59:07 UTC
If you can reproduce it reliably, it would be better to provide a backtrace with debug symbols or a valgrind log as described in https://community.kde.org/Dolphin/FAQ/Crashes

In the meantime I'm moving this to Breeze, according to what the backtrace says.
Comment 5 Hugo Pereira Da Costa 2016-12-24 14:25:08 UTC
And video would help too of course
Comment 6 Hugo Pereira Da Costa 2016-12-24 14:34:03 UTC
Ok 
I think I can reproduce the crash too, almost reliably, and this pratically every time the drag pointer passes over one of the arrows of the path breadcrumb, and the corresponding menu is raised. 
More explicitely
- start drag
- pass over the arrow of the path of the target view
- menu raises
- move down along the menu
- move left of right back to the target view and drop
This crashes almost systematically (at least 1 every two times)

 Now, this happens also if I use any other widget style for dolphin than breeze. 

Can you try with "dolphin -style fusion" ?
if happens also: not a breeze bug.
In fact, I think there is some conflict between the mouse grab from the drag-in-progress and the one from the menu.
Comment 7 Elvis Angelaccio 2016-12-25 11:29:01 UTC
*** Bug 366301 has been marked as a duplicate of this bug. ***
Comment 8 Hugo Pereira Da Costa 2016-12-25 12:06:00 UTC
See: the crash from Bug 366301 has similar modus operandi as this one, also involves QRasterPaintEngine in the backtrace (as in this one), but has no breeze involved.
Here, it is also the same when running with fusion style: RasterEngine involved, and obviously no breeze.

Hence: not a breeze bug
This is either Dolphin and/or components (pathbar), or upstream (Qt).
Reassigning back to Dolphin (sorry for the back and forth). I'd keep myself in cc, in case I have time to help on this one, but have little time at the moment

Best,

Hugo
Comment 9 Elvis Angelaccio 2016-12-25 12:08:33 UTC
@Hugo: indeed, thanks for the investigation.
Comment 10 Elvis Angelaccio 2016-12-25 12:15:04 UTC
*** Bug 362719 has been marked as a duplicate of this bug. ***
Comment 11 Christoph Feck 2016-12-30 16:26:46 UTC
Probably a valgrind log would help.
Comment 12 Elvis Angelaccio 2017-06-04 16:51:44 UTC
*** Bug 380822 has been marked as a duplicate of this bug. ***
Comment 13 Elvis Angelaccio 2018-01-14 12:06:35 UTC
*** Bug 388683 has been marked as a duplicate of this bug. ***
Comment 14 Nate Graham 2018-03-29 19:30:49 UTC
*** Bug 392423 has been marked as a duplicate of this bug. ***
Comment 15 Nate Graham 2018-03-29 19:30:53 UTC
*** Bug 392367 has been marked as a duplicate of this bug. ***
Comment 16 Nate Graham 2018-09-13 16:57:01 UTC
All dupes are from old versions of Dolphin and I cannot reproduce the issue in Dolphin 18.08 or from git master. Closing unless anyone can reproduce this issue in Dolphin 18.08 or from git master.
Comment 17 Elvis Angelaccio 2019-03-09 18:39:14 UTC
*** Bug 404914 has been marked as a duplicate of this bug. ***