Bug 136958

Summary: konqueror crash after a lot of cut&paste operations in tree view
Product: [Applications] konqueror Reporter: BORGULYA Gábor <bugs2>
Component: generalAssignee: Konqueror Developers <konq-bugs>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description BORGULYA Gábor 2006-11-06 17:32:03 UTC
Version:           3.5.2 (using KDE KDE 3.5.2)
Installed from:    Gentoo Packages
Compiler:          Portage 2.1.1 (default-linux/x86/2006.0, gcc-3.3.6, glibc-2.3.5-r0, 2.6.12-gentoo-r6 i686) compiled with java, debug, xinerama, kdeenablefinal
OS:                Linux

I am using two konqueror windows, both in tree view. I select a lot of files with CTRL+left_click, cut them using CTRL+X, move to the other window with ALT+TAB and paste the files into the appropriate directory using right_click paste. Sometimes I use menu/tools/find to preselect a file list, select a lot of files with CTRL+left_click, and continue in the same way.

After doing this for usually ca. 20 minutes the konqueror I am moving the files _from_ crashes.

Here is a backtrace:
Using host libthread_db library "/lib/tls/libthread_db.so.1".
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1235257664 (LWP 30680)]
[KCrash handler]
#6  0xb7f2d1e7 in QString::unicode (this=0x8) at qstring.h:653
#7  0xb753fc2b in KURL::query () from /usr/kde/3.5/lib/libkdecore.so.4
#8  0xb753efaf in KURL::upURL () from /usr/kde/3.5/lib/libkdecore.so.4
#9  0xb5b785af in KonqTreeViewWidget::slotNewItems (this=0x84a4238, 
    entries=@0xbff66500) at konq_treeviewwidget.cc:194
#10 0xb5b7fab7 in KonqListView::slotNewItems (this=0x20, lst=@0x8)
    at konq_listview.h:134
#11 0xb5b6e2d8 in KonqListView::qt_invoke (this=0x849b8d8, _id=-1221711512, 
    _o=0xb5b8e52c) at konq_listview.moc:171
#12 0xb6e69e7c in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#13 0xb5adedac in KFindPart::newItems ()
   from /usr/kde/3.5/lib/kde3/libkfindpart.so
#14 0xb5ade7e8 in KFindPart::removeFile ()
   from /usr/kde/3.5/lib/kde3/libkfindpart.so
#15 0xb5adf048 in KFindPart::qt_invoke ()
   from /usr/kde/3.5/lib/kde3/libkfindpart.so
#16 0xb6e69e7c in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#17 0xb7b9c1fc in KDirLister::deleteItem () from /usr/kde/3.5/lib/libkio.so.4
#18 0xb7b9b0f4 in KDirLister::emitDeleteItem ()
   from /usr/kde/3.5/lib/libkio.so.4
#19 0xb7b93b45 in KDirListerCache::FilesRemoved ()
   from /usr/kde/3.5/lib/libkio.so.4
#20 0xb7b3ac7c in KDirNotify::process () from /usr/kde/3.5/lib/libkio.so.4
#21 0xb73b86bc in DCOPClient::receive () from /usr/kde/3.5/lib/libDCOP.so.4
#22 0xb73b4d22 in DCOPClient::processPostedMessagesInternal ()
   from /usr/kde/3.5/lib/libDCOP.so.4
#23 0xb73b474c in DCOPClient::handleAsyncReply ()
   from /usr/kde/3.5/lib/libDCOP.so.4
#24 0xb73c86c6 in KDE_IceProcessMessages () from /usr/kde/3.5/lib/libDCOP.so.4
#25 0xb73b9c77 in DCOPClient::processSocketData ()
   from /usr/kde/3.5/lib/libDCOP.so.4
#26 0xb73bb1cb in DCOPClient::qt_invoke () from /usr/kde/3.5/lib/libDCOP.so.4
#27 0xb6e69e7c in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#28 0xb6e69fdd in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#29 0xb71ad822 in QSocketNotifier::activated ()
   from /usr/qt/3/lib/libqt-mt.so.3
#30 0xb6e86770 in QSocketNotifier::event () from /usr/qt/3/lib/libqt-mt.so.3
#31 0xb6e0d43f in QApplication::internalNotify ()
   from /usr/qt/3/lib/libqt-mt.so.3
#32 0xb6e0c775 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
#33 0xb74c6a1c in KApplication::notify ()
   from /usr/kde/3.5/lib/libkdecore.so.4
#34 0xb6dfcb8a in QEventLoop::activateSocketNotifiers ()
   from /usr/qt/3/lib/libqt-mt.so.3
#35 0xb6db570d in QEventLoop::processEvents ()
   from /usr/qt/3/lib/libqt-mt.so.3
#36 0xb6e1f8e8 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3
#37 0xb6e1f798 in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3
#38 0xb6e0d691 in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3
#39 0xb7ebabf2 in kdemain (argc=8, argv=0x8) at konq_main.cc:206
#40 0x0804875b in main (argc=8, argv=0x8) at konqueror.la.cc:2
Comment 1 Stephan Kulow 2006-12-04 17:21:57 UTC
SVN commit 610419 by coolo:

protect against empty lists
BUG: 136958


 M  +2 -1      kfind/kfindpart.cpp  
 M  +2 -0      konqueror/listview/konq_treeviewwidget.cc  


--- branches/KDE/3.5/kdebase/kfind/kfindpart.cpp #610418:610419
@@ -145,7 +145,8 @@
     return;
   emit started();
   emit clear();
-  emit newItems(m_lstFileItems);
+  if (m_lstFileItems.count())
+    emit newItems(m_lstFileItems);
   emit finished();
 }
 
--- branches/KDE/3.5/kdebase/konqueror/listview/konq_treeviewwidget.cc #610418:610419
@@ -189,6 +189,8 @@
 
 void KonqTreeViewWidget::slotNewItems( const KFileItemList &entries )
 {
+    if (!entries.count())
+        return;
     // Find parent item - it's the same for all the items
     QPtrListIterator<KFileItem> kit( entries );
     KURL dir( (*kit)->url().upURL() );
Comment 2 BORGULYA Gábor 2006-12-04 17:28:26 UTC
Thank you for fixing the bug, Stephan. I will upgrade to the new gentoo package ASAP. -- Gabor