Bug 331876 - Dolphin Crashes on File Moves
Summary: Dolphin Crashes on File Moves
Status: RESOLVED FIXED
Alias: None
Product: dolphin
Classification: Applications
Component: general (show other bugs)
Version: 4.12.2
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Dolphin Bug Assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2014-03-08 12:45 UTC by Wook
Modified: 2014-03-11 08:11 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 4.13.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wook 2014-03-08 12:45:25 UTC
Application: dolphin (4.12.2)
KDE Platform Version: 4.12.2
Qt Version: 4.8.5
Operating System: Linux 3.12.10-300.fc20.x86_64 x86_64
Distribution: "Fedora release 20 (Heisenbug)"

-- Information about the crash:
- What I was doing when the application crashed:
Moving files using the mouse (Shift-Move)
Preview was enabled, directory contained image files and subdirs;

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

Thread 12 (Thread 0x7fb079f51700 (LWP 1837)):
#0  0x00007fb0a027a87d in read () from /lib64/libpthread.so.0
#1  0x00007fb09a8bb7b0 in g_wakeup_acknowledge () from /lib64/libglib-2.0.so.0
#2  0x00007fb09a87b09c in g_main_context_check () from /lib64/libglib-2.0.so.0
#3  0x00007fb09a87b533 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#4  0x00007fb09a87b6dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#5  0x00007fb0a063bec6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#7  0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#8  0x00007fb0a0502baf in QThread::exec() () from /lib64/libQtCore.so.4
#9  0x00007fb0a05ec863 in QInotifyFileSystemWatcherEngine::run() () from /lib64/libQtCore.so.4
#10 0x00007fb0a05053af in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#11 0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#12 0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 11 (Thread 0x7fb07967e700 (LWP 1839)):
#0  0x00007fb09f4f49dd in poll () from /lib64/libc.so.6
#1  0x00007fb09a87b5b4 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#2  0x00007fb09a87b6dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007fb0a063bec6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#4  0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#5  0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x00007fb0a0502baf in QThread::exec() () from /lib64/libQtCore.so.4
#7  0x00007fb0a05053af in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#8  0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#9  0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 10 (Thread 0x7fb078cae700 (LWP 1924)):
#0  0x00007fb09f4f49dd in poll () from /lib64/libc.so.6
#1  0x00007fb09a87b5b4 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#2  0x00007fb09a87b6dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007fb0a063bec6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#4  0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#5  0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x00007fb0a0502baf in QThread::exec() () from /lib64/libQtCore.so.4
#7  0x00007fb0a05053af in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#8  0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#9  0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 9 (Thread 0x7fb06bfff700 (LWP 1926)):
#0  0x00007fb0a02771fe in pthread_mutex_unlock () from /lib64/libpthread.so.0
#1  0x00007fb09a8bc5d1 in g_mutex_unlock () from /lib64/libglib-2.0.so.0
#2  0x00007fb09a87b4ae in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#3  0x00007fb09a87ba3a in g_main_loop_run () from /lib64/libglib-2.0.so.0
#4  0x00007fb091065376 in gdbus_shared_thread_func () from /lib64/libgio-2.0.so.0
#5  0x00007fb09a8a0a45 in g_thread_proxy () from /lib64/libglib-2.0.so.0
#6  0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#7  0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 8 (Thread 0x7fb068d3a700 (LWP 1931)):
#0  0x00007fff4a7fea1f in clock_gettime ()
#1  0x00007fb09f50cf3d in clock_gettime () from /lib64/libc.so.6
#2  0x00007fb0a055c7ab in qt_gettime() () from /lib64/libQtCore.so.4
#3  0x00007fb0a063d655 in QTimerInfoList::timerWait(timeval&) () from /lib64/libQtCore.so.4
#4  0x00007fb0a063bcdc in timerSourcePrepareHelper(GTimerSource*, int*) () from /lib64/libQtCore.so.4
#5  0x00007fb0a063bda5 in timerSourcePrepare(_GSource*, int*) () from /lib64/libQtCore.so.4
#6  0x00007fb09a87abed in g_main_context_prepare () from /lib64/libglib-2.0.so.0
#7  0x00007fb09a87b4bb in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#8  0x00007fb09a87b6dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#9  0x00007fb0a063bec6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#10 0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#11 0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#12 0x00007fb0a0502baf in QThread::exec() () from /lib64/libQtCore.so.4
#13 0x00007fb0a05053af in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#14 0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#15 0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7fb05bc8c700 (LWP 1934)):
#0  0x00007fb0a02760d8 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007fb09a8bc5a1 in g_mutex_lock () from /lib64/libglib-2.0.so.0
#2  0x00007fb09a87b004 in g_main_context_check () from /lib64/libglib-2.0.so.0
#3  0x00007fb09a87b533 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#4  0x00007fb09a87b6dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#5  0x00007fb0a063bec6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#7  0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#8  0x00007fb0a0502baf in QThread::exec() () from /lib64/libQtCore.so.4
#9  0x00007fb0a05053af in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#10 0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#11 0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7fb05ac8a700 (LWP 1936)):
#0  0x00007fb09a8a0ef0 in g_thread_self () from /lib64/libglib-2.0.so.0
#1  0x00007fb09a87a63c in g_main_context_acquire () from /lib64/libglib-2.0.so.0
#2  0x00007fb09a87b465 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#3  0x00007fb09a87b6dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#4  0x00007fb0a063bec6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#5  0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#7  0x00007fb0a0502baf in QThread::exec() () from /lib64/libQtCore.so.4
#8  0x00007fb0a05053af in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#9  0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#10 0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7fb05a489700 (LWP 1937)):
#0  0x00007fb09a87ac92 in g_main_context_prepare () from /lib64/libglib-2.0.so.0
#1  0x00007fb09a87b4bb in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#2  0x00007fb09a87b6dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007fb0a063bec6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#4  0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#5  0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x00007fb0a0502baf in QThread::exec() () from /lib64/libQtCore.so.4
#7  0x00007fb0a05053af in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#8  0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#9  0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7fb059c88700 (LWP 1939)):
#0  0x00007fb0a027a87d in read () from /lib64/libpthread.so.0
#1  0x00007fb09a8bb7b0 in g_wakeup_acknowledge () from /lib64/libglib-2.0.so.0
#2  0x00007fb09a87b09c in g_main_context_check () from /lib64/libglib-2.0.so.0
#3  0x00007fb09a87b533 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#4  0x00007fb09a87b6dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#5  0x00007fb0a063bec6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#7  0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#8  0x00007fb0a0502baf in QThread::exec() () from /lib64/libQtCore.so.4
#9  0x00007fb0a05053af in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#10 0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#11 0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7fb059487700 (LWP 1941)):
#0  0x00007fb09f4f49dd in poll () from /lib64/libc.so.6
#1  0x00007fb09a87b5b4 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#2  0x00007fb09a87b6dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007fb0a063bec6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#4  0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#5  0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x00007fb0a0502baf in QThread::exec() () from /lib64/libQtCore.so.4
#7  0x00007fb0a05053af in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#8  0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#9  0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7fb058c86700 (LWP 1944)):
#0  0x00007fb0a0276050 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007fb09a8bc5a1 in g_mutex_lock () from /lib64/libglib-2.0.so.0
#2  0x00007fb09a87b6c8 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007fb0a063bec6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#4  0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#5  0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x00007fb0a0502baf in QThread::exec() () from /lib64/libQtCore.so.4
#7  0x00007fb0a05053af in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#8  0x00007fb0a0273f33 in start_thread () from /lib64/libpthread.so.0
#9  0x00007fb09f4feded in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fb0a56c08c0 (LWP 1777)):
[KCrash Handler]
#5  0x00007fb0a5001115 in QHash<QGraphicsWidget*, QPropertyAnimation*>::duplicateNode(QHashData::Node*, void*) () from /lib64/libdolphinprivate.so.4
#6  0x00007fb0a05218af in QHashData::detach_helper2(void (*)(QHashData::Node*, void*), void (*)(QHashData::Node*), int, int) () from /lib64/libQtCore.so.4
#7  0x00007fb0a500115a in QHash<QGraphicsWidget*, QPropertyAnimation*>::detach_helper() () from /lib64/libdolphinprivate.so.4
#8  0x00007fb0a50011c1 in QHash<QGraphicsWidget*, QPropertyAnimation*>::remove(QGraphicsWidget* const&) () from /lib64/libdolphinprivate.so.4
#9  0x00007fb0a5000cae in KItemListViewAnimation::slotFinished() () from /lib64/libdolphinprivate.so.4
#10 0x00007fb0a0621cf8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /lib64/libQtCore.so.4
#11 0x00007fb0a04e8540 in QAbstractAnimationPrivate::setState(QAbstractAnimation::State) () from /lib64/libQtCore.so.4
#12 0x00007fb0a04e8884 in QUnifiedTimer::updateAnimationsTime() () from /lib64/libQtCore.so.4
#13 0x00007fb0a04e98e1 in QAnimationDriver::advance() () from /lib64/libQtCore.so.4
#14 0x00007fb0a06260a1 in QObject::event(QEvent*) () from /lib64/libQtCore.so.4
#15 0x00007fb0a1785d8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQtGui.so.4
#16 0x00007fb0a178c725 in QApplication::notify(QObject*, QEvent*) () from /lib64/libQtGui.so.4
#17 0x00007fb0a24e3a1a in KApplication::notify(QObject*, QEvent*) () from /lib64/libkdeui.so.5
#18 0x00007fb0a060d39d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /lib64/libQtCore.so.4
#19 0x00007fb0a063eae3 in QTimerInfoList::activateTimers() () from /lib64/libQtCore.so.4
#20 0x00007fb0a063bc69 in idleTimerSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQtCore.so.4
#21 0x00007fb09a87b2a6 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#22 0x00007fb09a87b628 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#23 0x00007fb09a87b6dc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#24 0x00007fb0a063bea5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#25 0x00007fb0a1827ca6 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtGui.so.4
#26 0x00007fb0a060bedf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#27 0x00007fb0a060c22d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#28 0x00007fb0a0611749 in QCoreApplication::exec() () from /lib64/libQtCore.so.4
#29 0x00007fb0a52ac2aa in kdemain () from /lib64/libkdeinit4_dolphin.so
#30 0x00007fb09f42bd65 in __libc_start_main () from /lib64/libc.so.6
#31 0x00000000004008d1 in _start ()

Reported using DrKonqi
Comment 1 Frank Reininghaus 2014-03-11 08:11:52 UTC
Git commit 1cbb06f593879ecf2c715d53153ae8bda8e01f93 by Frank Reininghaus.
Committed on 11/03/2014 at 08:07.
Pushed by freininghaus into branch 'KDE/4.13'.

Use QMutableHashIterator for deleting items from a QHash

KItemListViewAnimation::slotFinished() used a QHashIterator to iterate
over a QHash, and then removes an item from the hash using
QHash::remove() inside the loop.

This is quite unusual - the recommended way is to use a
QMutableHashIterator (or std-style iterators and then QHash::erase(it)).

This might be related to the cause of a crash in this function.
REVIEW: 116666
FIXED-IN: 4.13.0

M  +2    -2    dolphin/src/kitemviews/private/kitemlistviewanimation.cpp

http://commits.kde.org/kde-baseapps/1cbb06f593879ecf2c715d53153ae8bda8e01f93