Bug 323316

Summary: Dolphin hangs when exploring NTFS partition with large amount of files
Product: [Unmaintained] kdelibs Reporter: Dmitry Bobrov <blackhawk128>
Component: kdecoreAssignee: kdelibs bugs <kdelibs-bugs>
Status: RESOLVED WORKSFORME    
Severity: crash CC: frank78ac
Priority: NOR    
Version: 4.10.5   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Dmitry Bobrov 2013-08-09 18:55:03 UTC
When I explore my Windows partition, Dolphin hangs when it counts number of objects in subdirectories, and nothing but killing and launching it again helps.

Reproducible: Always

Steps to Reproduce:
1. Take a big NTFS partition which contains a directory with about 50 subdirectories with large amount of objects in some of them.
2. Navigate to this partion with Dolphin.
3. Browse directory tree.
Actual Results:  
On some step, which is usually not greater than 10th, Dolphin hangs.
Comment 1 Frank Reininghaus 2013-08-10 08:08:33 UTC
Thanks for the bug report!

(In reply to comment #0)
> When I explore my Windows partition, Dolphin hangs when it counts number of
> objects in subdirectories, and nothing but killing and launching it again
> helps.

In that case, we need a backtrace that tells us where in the code it hangs. Please do the following:

1. In a shell, type "gdb dolphin".
2. At the gdb prompt, enter "run".
3. Reproduce the freeze.
4. Press Ctrl+Z.
5. At the gdb prompt, enter "thread apply all backtrace" and paste the backtrace here.

Thanks for your help.
Comment 2 Dmitry Bobrov 2013-08-10 12:43:30 UTC
Thread 3 (Thread 0x7fffdbfff700 (LWP 6389)):                                                                                                                      
#0  0x00007ffff7873a63 in select () from /lib64/libc.so.6                                                                                                         
#1  0x00007ffff36743a2 in QProcessManager::run() () from /usr/lib64/qt4/libQtCore.so.4                                                                            
#2  0x00007ffff359c64c in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4                                                                      
#3  0x00007ffff1c47f4a in start_thread () from /lib64/libpthread.so.0                                                                                             
#4  0x00007ffff787a23d in clone () from /lib64/libc.so.6                                                                                                          
                                                                                                                                                                  
Thread 2 (Thread 0x7fffe258e700 (LWP 6387)):                                                                                                                      
#0  0x00007ffff787134f in poll () from /lib64/libc.so.6                                                                                                           
#1  0x00007fffef86f5a4 in g_main_context_iterate.isra.24 () from /usr/lib64/libglib-2.0.so.0
#2  0x00007fffef86f6c4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007ffff36c3b16 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007ffff3694e7f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#5  0x00007ffff3695108 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#6  0x00007ffff35996a0 in QThread::exec() () from /usr/lib64/qt4/libQtCore.so.4
#7  0x00007ffff3675e1f in QInotifyFileSystemWatcherEngine::run() () from /usr/lib64/qt4/libQtCore.so.4
#8  0x00007ffff359c64c in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#9  0x00007ffff1c47f4a in start_thread () from /lib64/libpthread.so.0
#10 0x00007ffff787a23d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7ffff7e77780 (LWP 6383)):
#0  0x00007ffff786c8cd in write () from /lib64/libc.so.6
#1  0x00000034c8a01c8e in ?? () from /usr/lib64/libfam.so.0
#2  0x00000034c8a01d90 in ?? () from /usr/lib64/libfam.so.0
#3  0x00000034c8a01f4d in FAMCancelMonitor () from /usr/lib64/libfam.so.0
#4  0x00007ffff3b09ce8 in KDirWatchPrivate::removeWatch(KDirWatchPrivate::Entry*) () from /usr/lib64/libkdecore.so.5
#5  0x00007ffff3b1045b in KDirWatchPrivate::removeEntry(KDirWatch*, KDirWatchPrivate::Entry*, KDirWatchPrivate::Entry*) () from /usr/lib64/libkdecore.so.5
#6  0x00007ffff3b10642 in KDirWatchPrivate::removeEntry(KDirWatch*, QString const&, KDirWatchPrivate::Entry*) () from /usr/lib64/libkdecore.so.5
#7  0x00007ffff6b8fb88 in KFileItemModelRolesUpdater::slotItemsRemoved(QList<KItemRange> const&) () from /usr/lib64/libdolphinprivate.so.4
#8  0x00007ffff36ac61f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#9  0x00007ffff6baabd5 in KItemModelBase::itemsRemoved(QList<KItemRange> const&) () from /usr/lib64/libdolphinprivate.so.4
#10 0x00007ffff6b86e10 in KFileItemModel::slotClear() () from /usr/lib64/libdolphinprivate.so.4
#11 0x00007ffff6bcb669 in DolphinView::setUrl(KUrl const&) () from /usr/lib64/libdolphinprivate.so.4
#12 0x00007ffff7b83b13 in DolphinViewContainer::slotItemActivated(KFileItem const&) () from /usr/lib64/libkdeinit4_dolphin.so
#13 0x00007ffff7b858ee in DolphinViewContainer::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib64/libkdeinit4_dolphin.so
#14 0x00007ffff36ac61f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#15 0x00007ffff6bc85e5 in DolphinView::itemActivated(KFileItem const&) () from /usr/lib64/libdolphinprivate.so.4
#16 0x00007ffff6bc861d in DolphinView::slotItemActivated(int) () from /usr/lib64/libdolphinprivate.so.4
#17 0x00007ffff6bce3c0 in DolphinView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib64/libdolphinprivate.so.4
#18 0x00007ffff36ac61f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#19 0x00007ffff6b94a9e in KItemListController::itemActivated(int) () from /usr/lib64/libdolphinprivate.so.4
#20 0x00007ffff6b94b8b in KItemListController::mouseDoubleClickEvent(QGraphicsSceneMouseEvent*, QTransform const&) () from /usr/lib64/libdolphinprivate.so.4
#21 0x00007ffff6b93dee in KItemListController::processEvent(QEvent*, QTransform const&) () from /usr/lib64/libdolphinprivate.so.4
#22 0x00007ffff6b9b81b in KItemListView::event(QEvent*) () from /usr/lib64/libdolphinprivate.so.4
#23 0x00007ffff40a69dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#24 0x00007ffff40a875a in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#25 0x00007ffff4d99db6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
---Type <return> to continue, or q <return> to quit---
#26 0x00007ffff369611e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#27 0x00007ffff4662f5b in QGraphicsScenePrivate::sendEvent(QGraphicsItem*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#28 0x00007ffff4663b30 in QGraphicsScenePrivate::sendMouseEvent(QGraphicsSceneMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#29 0x00007ffff4669986 in QGraphicsScenePrivate::mousePressEventHandler(QGraphicsSceneMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#30 0x00007ffff467367a in QGraphicsScene::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#31 0x00007ffff40a69dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#32 0x00007ffff40a875a in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#33 0x00007ffff4d99db6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#34 0x00007ffff369611e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#35 0x00007ffff46880f1 in QGraphicsView::mouseDoubleClickEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#36 0x00007ffff40f01e6 in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#37 0x00007ffff447bca6 in QFrame::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#38 0x00007ffff46905eb in QGraphicsView::viewportEvent(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#39 0x00007ffff3696286 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#40 0x00007ffff40a69ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#41 0x00007ffff40a8f92 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#42 0x00007ffff4d99db6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#43 0x00007ffff369611e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#44 0x00007ffff40a786b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib64/qt4/libQtGui.so.4
#45 0x00007ffff411da24 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib64/qt4/libQtGui.so.4
#46 0x00007ffff411c321 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#47 0x00007ffff4141db2 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtGui.so.4
#48 0x00007fffef86f2d5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#49 0x00007fffef86f608 in g_main_context_iterate.isra.24 () from /usr/lib64/libglib-2.0.so.0
#50 0x00007fffef86f6c4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#51 0x00007ffff36c3af6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#52 0x00007ffff4141a3e in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#53 0x00007ffff3694e7f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#54 0x00007ffff3695108 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#55 0x00007ffff3699c58 in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#56 0x00007ffff7b8a027 in kdemain () from /usr/lib64/libkdeinit4_dolphin.so
#57 0x00007ffff77b46c5 in __libc_start_main () from /lib64/libc.so.6
#58 0x0000000000400801 in _start ()

(In reply to comment #1)
> Thanks for the bug report!
> 
> (In reply to comment #0)
> > When I explore my Windows partition, Dolphin hangs when it counts number of
> > objects in subdirectories, and nothing but killing and launching it again
> > helps.
> 
> In that case, we need a backtrace that tells us where in the code it hangs.
> Please do the following:
> 
> 1. In a shell, type "gdb dolphin".
> 2. At the gdb prompt, enter "run".
> 3. Reproduce the freeze.
> 4. Press Ctrl+Z.
> 5. At the gdb prompt, enter "thread apply all backtrace" and paste the
> backtrace here.
> 
> Thanks for your help.
Comment 3 Frank Reininghaus 2013-08-10 13:16:40 UTC
Thanks. Looks like it is related to KDirWatch and fam.

What is your KDE version?

(In reply to comment #2)
> Thread 1 (Thread 0x7ffff7e77780 (LWP 6383)):
> #0  0x00007ffff786c8cd in write () from /lib64/libc.so.6
> #1  0x00000034c8a01c8e in ?? () from /usr/lib64/libfam.so.0
> #2  0x00000034c8a01d90 in ?? () from /usr/lib64/libfam.so.0
> #3  0x00000034c8a01f4d in FAMCancelMonitor () from /usr/lib64/libfam.so.0
> #4  0x00007ffff3b09ce8 in
> KDirWatchPrivate::removeWatch(KDirWatchPrivate::Entry*) () from
> /usr/lib64/libkdecore.so.5
> #5  0x00007ffff3b1045b in KDirWatchPrivate::removeEntry(KDirWatch*,
> KDirWatchPrivate::Entry*, KDirWatchPrivate::Entry*) () from
> /usr/lib64/libkdecore.so.5
> #6  0x00007ffff3b10642 in KDirWatchPrivate::removeEntry(KDirWatch*, QString
> const&, KDirWatchPrivate::Entry*) () from /usr/lib64/libkdecore.so.5
> #7  0x00007ffff6b8fb88 in
> KFileItemModelRolesUpdater::slotItemsRemoved(QList<KItemRange> const&) ()
> from /usr/lib64/libdolphinprivate.so.4
Comment 4 Dmitry Bobrov 2013-08-10 13:36:29 UTC
4.10.5

(In reply to comment #3)
> What is your KDE version?
Comment 5 Frank Reininghaus 2013-08-12 09:23:42 UTC
Thanks. I'll reassign to kdelibs/kdecore then (that's where KDirWatch lives), even though I'm not sure at all if this is a KDE problem or if FAM is having trouble with NTFS file systems.
Comment 6 Andrew Crouthamel 2018-10-30 00:00:15 UTC
Dear Bug Submitter,

This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond.

Thank you for helping us make KDE software even better for everyone!
Comment 7 Bug Janitor Service 2018-11-14 11:32:16 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 8 Bug Janitor Service 2018-11-29 09:46:21 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!