Version: (using KDE KDE 3.0.99) Installed from: Compiled From Sources Compiler: gcc 2.95.3 OS: Linux I was cleaning out some files from my homedir using konqueror in filemanager mode. At one point I deleted all the content of a directory that I had opened, then desided to just remove the directory entirely, so I right-clicked on the directory I was currently browsing in the konqueror sidebar (I believe that's what it's called), and selected delete. The directory was deleted and everything seemed fine, but after a few seconds Konqueror crashed with signal 11 and produced the following backtrace : 0x412ed089 in wait4 () from /lib/libc.so.6 #0 0x412ed089 in wait4 () from /lib/libc.so.6 #1 0x41367de0 in __check_rhosts_file () from /lib/libc.so.6 #2 0x411bd7aa in waitpid () from /lib/libpthread.so.0 #3 0x405e5a6c in KCrash::defaultCrashHandler (sig=11) at kcrash.cpp:235 #4 0x411bb144 in pthread_kill () from /lib/libpthread.so.0 #5 0x41274218 in sigaction () from /lib/libc.so.6 #6 0x40d0cbee in QGList::removeRef () from /usr/local/qt/lib/libqt-mt.so.3 #7 0x401d7792 in KDirListerCache::forgetDirs (this=0x82293d0, lister=0x828fe38, url=@0x80b2ee0, notify=false) at /usr/local/qt/include/qptrlist.h:71 #8 0x401d726e in KDirListerCache::forgetDirs (this=0x82293d0, lister=0x828fe38) at kdirlister.cpp:433 #9 0x401e1fc9 in KDirLister::~KDirLister (this=0x828fe38, __in_chrg=3) at kdirlister.cpp:1503 #10 0x41fd864d in KonqSidebarDirTreeModule::~KonqSidebarDirTreeModule ( this=0x828f188, __in_chrg=3) at dirtree_module.cpp:45 #11 0x41fb97e7 in QPtrList<KonqSidebarTreeModule>::deleteItem (this=0x8288be8, d=0x828f1b0) at /usr/local/qt/include/qptrlist.h:119 #12 0x40d0cf71 in QGList::clear () from /usr/local/qt/lib/libqt-mt.so.3 #13 0x41fb1e69 in KonqSidebarTree::clearTree (this=0x8288b18) at /usr/local/qt/include/qptrlist.h:78 #14 0x41fb1c4e in KonqSidebarTree::~KonqSidebarTree (this=0x8288b18, __in_chrg=3) at konq_sidebartree.cpp:154 #15 0x40a6d0e3 in QWidget::~QWidget () from /usr/local/qt/lib/libqt-mt.so.3 #16 0x4047252e in KDockWidget::~KDockWidget (this=0x81dd680, __in_chrg=3) at kdockwidget.cpp:449 #17 0x4047520e in KDockManager::~KDockManager (this=0x81e85b8, __in_chrg=3) at kdockwidget.cpp:1459 #18 0x4047d9c9 in KDockArea::~KDockArea (this=0x81e8418, __in_chrg=3) at kdockwidget.cpp:2582 #19 0x40a6d0e3 in QWidget::~QWidget () from /usr/local/qt/lib/libqt-mt.so.3 #20 0x41bd4f82 in Sidebar_Widget::~Sidebar_Widget (this=0x805a7b0, __in_chrg=3) at sidebar_widget.cpp:1038 #21 0x40030070 in KParts::Part::~Part (this=0x81dc848, __in_chrg=0) at part.cpp:156 #22 0x40030784 in KParts::ReadOnlyPart::~ReadOnlyPart (this=0x81dc848, __in_chrg=0) at part.cpp:301 #23 0x41bca35f in KonqSidebar::~KonqSidebar (this=0x81dc848, __in_chrg=3) at konqsidebar.cpp:46 #24 0x41939cb3 in KonqView::~KonqView (this=0x81dc2a8, __in_chrg=3) at konq_view.cc:118 #25 0x41946a27 in KonqViewManager::clear (this=0x80da178) at konq_viewmgr.cc:811 #26 0x4194097d in KonqViewManager::~KonqViewManager (this=0x80da178, __in_chrg=3) at konq_viewmgr.cc:70 #27 0x41910db3 in KonqMainWindow::~KonqMainWindow (this=0x80d25b0, __in_chrg=3) at konq_mainwindow.cc:232 #28 0x40a35312 in QObject::event () from /usr/local/qt/lib/libqt-mt.so.3 #29 0x40a72aa5 in QWidget::event () from /usr/local/qt/lib/libqt-mt.so.3 #30 0x40b278a7 in QMainWindow::event () from /usr/local/qt/lib/libqt-mt.so.3 #31 0x409ce0f3 in QApplication::internalNotify () from /usr/local/qt/lib/libqt-mt.so.3 #32 0x409cde34 in QApplication::notify () from /usr/local/qt/lib/libqt-mt.so.3 #33 0x4056addb in KApplication::notify (this=0xbffff4f8, receiver=0x80d25b0, event=0x80a7650) at kapplication.cpp:441 #34 0x409cf35b in QApplication::sendPostedEvents () from /usr/local/qt/lib/libqt-mt.so.3 #35 0x409e4836 in QEventLoop::enterLoop () from /usr/local/qt/lib/libqt-mt.so.3 #36 0x409e470b in QEventLoop::exec () from /usr/local/qt/lib/libqt-mt.so.3 #37 0x409ce2fe in QApplication::exec () from /usr/local/qt/lib/libqt-mt.so.3 #38 0x4190c594 in main (argc=2, argv=0x805cdd0) at konq_main.cc:130 #39 0x0804d486 in launch (argc=2, _name=0x805c76c "konqueror", args=0x805c77f "\001", cwd=0x0, envc=1, envs=0x805c790 "", reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x805c794 "sleipner;1038292826;717153;175") at kinit.cpp:547 #40 0x0804e248 in handle_launcher_request (sock=-1) at kinit.cpp:1023 #41 0x0804e72b in handle_requests (waitForPid=0) at kinit.cpp:1189 #42 0x0804f5d7 in main (argc=3, argv=0xbffffa74, envp=0xbffffa84) at kinit.cpp:1534 #43 0x4126317d in __libc_start_main () from /lib/libc.so.6 I have tried reproducing this situation, but it has only led to a crash this one time - I have yet to reproduce, but I hope the info is still of some use. regards, Jeper Juhl
I've just experienced this problem again. Exactely the same procedure as originally described. So, this is not just a "it happened once and never again" bug. Unfortunately I'm still not able to reproduce it on demand :-(
I just did this again in more or less recent HEAD. I got a different backtrace, though (see below). Another funny things was that I had deleted a few directories and even created new ones and deleted them again. Everything seemed fine with the sidebar being updated immediatelly etc. Then when I was thinking "probably fixed in HEAD" and was even starting to report that, it crashed. Not knowing the code, this hints at a dangling pointer of some sort. Here's the backtrace: [New Thread 1024 (LWP 4234)] 0x420b4769 in wait4 () from /lib/i686/libc.so.6 #0 0x420b4769 in wait4 () from /lib/i686/libc.so.6 #1 0x4213030c in __DTOR_END__ () from /lib/i686/libc.so.6 #2 0x4105aca3 in waitpid () from /lib/i686/libpthread.so.0 #3 0x4058420f in KCrash::defaultCrashHandler () from /opt/kde-cvs/lib/libkdecore.so.4 #4 0x41058f75 in pthread_sighandler () from /lib/i686/libpthread.so.0 #5 <signal handler called> #6 0x40c5db75 in QString::QString () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #7 0x401bbbe9 in KFileItem::isReadable () from /opt/kde-cvs/lib/libkio.so.4 #8 0x41286636 in KIVDirectoryOverlay::start () from /opt/kde-cvs/lib/libkonq.so.4 #9 0x41eca1d7 in KonqKfmIconView::slotDirectoryOverlayFinished () from /opt/kde-cvs/lib/kde3/konq_iconview.so #10 0x41ecb7f5 in KonqKfmIconView::qt_invoke () from /opt/kde-cvs/lib/kde3/konq_iconview.so #11 0x409a59ee in QObject::activate_signal () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #12 0x409a58ee in QObject::activate_signal () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #13 0x41286c35 in KIVDirectoryOverlay::finished () from /opt/kde-cvs/lib/libkonq.so.4 #14 0x41286827 in KIVDirectoryOverlay::slotCompleted () from /opt/kde-cvs/lib/libkonq.so.4 #15 0x41286c89 in KIVDirectoryOverlay::qt_invoke () from /opt/kde-cvs/lib/libkonq.so.4 #16 0x409a5a82 in QObject::activate_signal () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #17 0x409a58ee in QObject::activate_signal () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #18 0x401c64e6 in KDirLister::completed () from /opt/kde-cvs/lib/libkio.so.4 #19 0x401c22f2 in KDirListerCache::slotResult () from /opt/kde-cvs/lib/libkio.so.4 #20 0x401c7713 in KDirListerCache::qt_invoke () from /opt/kde-cvs/lib/libkio.so.4 #21 0x409a59ee in QObject::activate_signal () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #22 0x4013dd29 in KIO::Job::result () from /opt/kde-cvs/lib/libkio.so.4 #23 0x4012cfb7 in KIO::Job::emitResult () from /opt/kde-cvs/lib/libkio.so.4 #24 0x4012e1a2 in KIO::SimpleJob::slotFinished () from /opt/kde-cvs/lib/libkio.so.4 #25 0x40133f0b in KIO::ListJob::slotFinished () from /opt/kde-cvs/lib/libkio.so.4 #26 0x4014017e in KIO::ListJob::qt_invoke () from /opt/kde-cvs/lib/libkio.so.4 #27 0x409a59ee in QObject::activate_signal () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #28 0x409a58ee in QObject::activate_signal () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #29 0x40122988 in KIO::SlaveInterface::finished () from /opt/kde-cvs/lib/libkio.so.4 #30 0x4012115d in KIO::SlaveInterface::dispatch () from /opt/kde-cvs/lib/libkio.so.4 #31 0x40120d37 in KIO::SlaveInterface::dispatch () from /opt/kde-cvs/lib/libkio.so.4 #32 0x4011e8b4 in KIO::Slave::gotInput () from /opt/kde-cvs/lib/libkio.so.4 #33 0x401202ae in KIO::Slave::qt_invoke () from /opt/kde-cvs/lib/libkio.so.4 #34 0x409a59ee in QObject::activate_signal () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #35 0x409a5ba8 in QObject::activate_signal () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #36 0x40ccdddf in QSocketNotifier::activated () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #37 0x409c190a in QSocketNotifier::event () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #38 0x4093fa38 in QApplication::internalNotify () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #39 0x4093f75b in QApplication::notify () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #40 0x4050d852 in KApplication::notify () from /opt/kde-cvs/lib/libkdecore.so.4 #41 0x40917f60 in QEventLoop::activateSocketNotifiers () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #42 0x408f6c00 in QEventLoop::processEvents () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #43 0x4095407c in QEventLoop::enterLoop () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #44 0x40953fd1 in QEventLoop::exec () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #45 0x4093fc1e in QApplication::exec () from /opt/kde-cvs/src/qt-copy/lib/libqt-mt.so.3 #46 0x412d393f in main () from /opt/kde-cvs/lib/konqueror.so #47 0x0804cad4 in launch () #48 0x0804d73c in handle_launcher_request () #49 0x0804db86 in handle_requests () #50 0x0804eb05 in main () #51 0x42017499 in __libc_start_main () from /lib/i686/libc.so.6 HTH, -- Luis Pedro Coelho http://blogs.salon.com/0001523
*** Bug 58552 has been marked as a duplicate of this bug. ***
I can confirm, CVS HEAD What I did to reproduce it: extract a qt tarball. Go into it to src/kernel/, with sidebar on, and following /home rm -rf the tarball. Click someplace (was it the sidebar?) <crash>
Hmm, either this, or my reproduction, may really be essentially #50722 - I get a crash when dealing when the thumbnails are getting made The bt is of my reproduction is not the same, but the memory corruption is pretty horrid (writes all over the place, invalid writes, etc), so hard to tell how exactly it'd crash: ==6976== ==6976== Invalid read of size 1 ==6976== at 0x409CF798: KURL::prettyURL(int) const (in /code/opt/kde3/lib/libkdecore.so.4.2.0) ==6976== by 0x404A9C59: KIO::stat(KURL const&, bool, short, bool) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404A9C13: KIO::stat(KURL const&, bool) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40566345: KIO::PreviewJob::determineNextFile() (previewjob.cpp:248) ==6976== by 0x40566804: KIO::PreviewJob::slotResult(KIO::Job*) (previewjob.cpp:322) ==6976== by 0x40564FD0: KIO::PreviewJob::qt_invoke(int, QUObject*) (previewjob.moc:136) ==6976== by 0x40D1F338: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x404B9C55: KIO::Job::result(KIO::Job*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404A6EC1: KIO::Job::emitResult() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404A824A: KIO::SimpleJob::slotFinished() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404AA960: KIO::TransferJob::slotFinished() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404BB14B: KIO::TransferJob::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40D1F338: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D1F1DC: QObject::activate_signal(int) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x4049BAB7: KIO::SlaveInterface::finished() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4049AA13: KIO::SlaveInterface::dispatch(int, QMemArray<char> const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4049A0D8: KIO::SlaveInterface::dispatch() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40497DAA: KIO::Slave::gotInput() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404996B0: KIO::Slave::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40D1F338: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D1F414: QObject::activate_signal(int, int) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40FD9FB1: QSocketNotifier::activated(int) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D3B99F: QSocketNotifier::event(QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CC1D93: QApplication::internalNotify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CC155A: QApplication::notify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40946A1D: KApplication::notify(QObject*, QEvent*) (in /code/opt/kde3/lib/libkdecore.so.4.2.0) ==6976== by 0x40C9CD19: QEventLoop::activateSocketNotifiers() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40C7A496: QEventLoop::processEvents(unsigned) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CD5C35: QEventLoop::enterLoop() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CD5AD7: QEventLoop::exec() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CC1FC0: QApplication::exec() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40252A1D: kdemain (konq_main.cc:193) ==6976== Address 0x471F37F8 is 36 bytes inside a block of size 124 free'd ==6976== at 0x4015E0E8: __builtin_delete (vg_clientfuncs.c:196) ==6976== by 0x4015E108: operator delete(void*) (vg_clientfuncs.c:205) ==6976== by 0x40543342: KFileItem::~KFileItem() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4026A4DE: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:119) ==6976== by 0x40F639AD: QGList::clear() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x4026A489: QPtrList<KFileItem>::clear() (qptrlist.h:78) ==6976== by 0x4026A43B: QPtrList<KFileItem>::~QPtrList() (qptrlist.h:55) ==6976== by 0x405528B0: QCache<KDirListerCache::DirItem>::deleteItem(void*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40F5EDFD: QGCache::remove_string(QString const&) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x4054C2F3: KDirListerCache::removeDirFromCache(KURL const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4054D3EA: KDirListerCache::deleteDir(KURL const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4054A180: KDirListerCache::FilesRemoved(KURL::List const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4054AB9A: KDirListerCache::slotFileDeleted(QString const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40550A3F: KDirListerCache::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40D1F338: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D1F604: QObject::activate_signal(int, QString) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x405065DA: KDirWatch::deleted(QString const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x405063A8: KDirWatch::setDeleted(QString const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40505538: KDirWatchPrivate::emitEvent(KDirWatchPrivate::Entry*, int, QString const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x405056E9: KDirWatchPrivate::slotRescan() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x405068FE: KDirWatchPrivate::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40D1F338: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D1F1DC: QObject::activate_signal(int) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40FDB44A: QTimer::timeout() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D40421: QTimer::event(QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CC1D93: QApplication::internalNotify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CC155A: QApplication::notify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40946A1D: KApplication::notify(QObject*, QEvent*) (in /code/opt/kde3/lib/libkdecore.so.4.2.0) ==6976== by 0x40C9CBB4: QEventLoop::activateTimers() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40C7A4A7: QEventLoop::processEvents(unsigned) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CD5C35: QEventLoop::enterLoop() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CD5AD7: QEventLoop::exec() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== ==6976== Invalid read of size 4 ==6976== at 0x40F75B09: QString::QString(QString const&) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x404A9C59: KIO::stat(KURL const&, bool, short, bool) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404A9C13: KIO::stat(KURL const&, bool) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40566345: KIO::PreviewJob::determineNextFile() (previewjob.cpp:248) ==6976== by 0x40566804: KIO::PreviewJob::slotResult(KIO::Job*) (previewjob.cpp:322) ==6976== by 0x40564FD0: KIO::PreviewJob::qt_invoke(int, QUObject*) (previewjob.moc:136) ==6976== by 0x40D1F338: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x404B9C55: KIO::Job::result(KIO::Job*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404A6EC1: KIO::Job::emitResult() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404A824A: KIO::SimpleJob::slotFinished() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404AA960: KIO::TransferJob::slotFinished() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404BB14B: KIO::TransferJob::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40D1F338: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D1F1DC: QObject::activate_signal(int) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x4049BAB7: KIO::SlaveInterface::finished() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4049AA13: KIO::SlaveInterface::dispatch(int, QMemArray<char> const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4049A0D8: KIO::SlaveInterface::dispatch() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40497DAA: KIO::Slave::gotInput() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x404996B0: KIO::Slave::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40D1F338: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D1F414: QObject::activate_signal(int, int) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40FD9FB1: QSocketNotifier::activated(int) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D3B99F: QSocketNotifier::event(QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CC1D93: QApplication::internalNotify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CC155A: QApplication::notify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40946A1D: KApplication::notify(QObject*, QEvent*) (in /code/opt/kde3/lib/libkdecore.so.4.2.0) ==6976== by 0x40C9CD19: QEventLoop::activateSocketNotifiers() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40C7A496: QEventLoop::processEvents(unsigned) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CD5C35: QEventLoop::enterLoop() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CD5AD7: QEventLoop::exec() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CC1FC0: QApplication::exec() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40252A1D: kdemain (konq_main.cc:193) ==6976== Address 0x471F37DC is 8 bytes inside a block of size 124 free'd ==6976== at 0x4015E0E8: __builtin_delete (vg_clientfuncs.c:196) ==6976== by 0x4015E108: operator delete(void*) (vg_clientfuncs.c:205) ==6976== by 0x40543342: KFileItem::~KFileItem() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4026A4DE: QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:119) ==6976== by 0x40F639AD: QGList::clear() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x4026A489: QPtrList<KFileItem>::clear() (qptrlist.h:78) ==6976== by 0x4026A43B: QPtrList<KFileItem>::~QPtrList() (qptrlist.h:55) ==6976== by 0x405528B0: QCache<KDirListerCache::DirItem>::deleteItem(void*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40F5EDFD: QGCache::remove_string(QString const&) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x4054C2F3: KDirListerCache::removeDirFromCache(KURL const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4054D3EA: KDirListerCache::deleteDir(KURL const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4054A180: KDirListerCache::FilesRemoved(KURL::List const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x4054AB9A: KDirListerCache::slotFileDeleted(QString const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40550A3F: KDirListerCache::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40D1F338: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D1F604: QObject::activate_signal(int, QString) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x405065DA: KDirWatch::deleted(QString const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x405063A8: KDirWatch::setDeleted(QString const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40505538: KDirWatchPrivate::emitEvent(KDirWatchPrivate::Entry*, int, QString const&) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x405056E9: KDirWatchPrivate::slotRescan() (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x405068FE: KDirWatchPrivate::qt_invoke(int, QUObject*) (in /code/opt/kde3/lib/libkio.so.4.2.0) ==6976== by 0x40D1F338: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D1F1DC: QObject::activate_signal(int) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40FDB44A: QTimer::timeout() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40D40421: QTimer::event(QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CC1D93: QApplication::internalNotify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CC155A: QApplication::notify(QObject*, QEvent*) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40946A1D: KApplication::notify(QObject*, QEvent*) (in /code/opt/kde3/lib/libkdecore.so.4.2.0) ==6976== by 0x40C9CBB4: QEventLoop::activateTimers() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40C7A4A7: QEventLoop::processEvents(unsigned) (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CD5C35: QEventLoop::enterLoop() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) ==6976== by 0x40CD5AD7: QEventLoop::exec() (in /usr/lib/qt3/lib/libqt-mt.so.3.1.2) (etc, etc.)
got a very similiar: ==23659== Invalid read of size 4 ==23659== at 0x4054736C: KSharedPtr<KMimeType>::operator!() const (/coolo/prod/kdelibs/kdecore/ksharedpt r.h:142) ==23659== by 0x4056AAFB: KFileItem::mimetype() const (/coolo/prod/kdelibs/kio/kio/kfileitem.cpp:366) ==23659== by 0x4058DF71: KIO::PreviewJob::startPreview() (/coolo/prod/kdelibs/kio/kio/previewjob.cpp:168 ) ==23659== by 0x4058D46E: KIO::PreviewJob::qt_invoke(int, QUObject*) (kio/kio/previewjob.moc:137) ==23659== by 0x4163A48F: QObject::activate_signal(QConnectionList*, QUObject*) (kernel/qobject.cpp:2226) ==23659== by 0x4193B72B: QSignal::signal(QVariant const&) (.moc/debug-shared-mt/moc_qsignal.cpp:100) ==23659== by 0x416579AC: QSignal::activate() (kernel/qsignal.cpp:204) ==23659== by 0x4165E6FC: QSingleShotTimer::event(QEvent*) (kernel/qtimer.cpp:277) ==23659== by 0x415D40B1: QApplication::internalNotify(QObject*, QEvent*) (kernel/qapplication.cpp:2363) ==23659== by 0x415D36CF: QApplication::notify(QObject*, QEvent*) (kernel/qapplication.cpp:2125) ==23659== by 0x409FC3B6: KApplication::notify(QObject*, QEvent*) (/coolo/prod/kdelibs/kdecore/kapplicati on.cpp:463) ==23659== by 0x4025D4FC: QApplication::sendEvent(QObject*, QEvent*) (/coolo/prod/qt-copy/include/qapplic ation.h:478) ==23659== by 0x415AD9F5: QEventLoop::activateTimers() (kernel/qeventloop_unix.cpp:539) ==23659== by 0x41588546: QEventLoop::processEvents(unsigned) (kernel/qeventloop_x11.cpp:328) ==23659== Address 0x4AB39AD4 is 68 bytes inside a block of size 124 free'd ==23659== at 0x4014E266: __builtin_delete (in /usr/lib/valgrind/valgrind.so) ==23659== by 0x4014E284: operator delete(void*) (in /usr/lib/valgrind/valgrind.so) ==23659== by 0x40569DAB: KFileItem::~KFileItem() (/coolo/prod/kdelibs/kio/kio/kfileitem.cpp:154) ==23659== by 0x4025DBC2: QPtrList<KFileItem>::deleteItem(void*) (/coolo/prod/qt-copy/include/qptrlist.h: 119) ==23659== by 0x418C463A: QGList::clear() (tools/qglist.cpp:701) ==23659== by 0x4025D8D3: QPtrList<KFileItem>::clear() (/coolo/prod/qt-copy/include/qptrlist.h:78) ==23659== by 0x4025DB45: QPtrList<KFileItem>::~QPtrList() (/coolo/prod/qt-copy/include/qptrlist.h:55) ==23659== by 0x4057CB5E: KDirListerCache::DirItem::~DirItem() (/coolo/prod/kdelibs/kio/kio/kdirlister_p. h:234) ==23659== by 0x4057D27E: QCache<KDirListerCache::DirItem>::deleteItem(void*) (/coolo/prod/qt-copy/includ e/qcache.h:90) ==23659== by 0x418BE147: QGCache::remove_string(QString const&) (tools/qgcache.cpp:440) ==23659== by 0x40579E04: QCache<KDirListerCache::DirItem>::remove(QString const&) (/coolo/prod/qt-copy/i nclude/qcache.h:70) ==23659== by 0x405733E0: KDirListerCache::removeDirFromCache(KURL const&) (/coolo/prod/kdelibs/kio/kio/k dirlister.cpp:1128) ==23659== by 0x405745BA: KDirListerCache::deleteDir(KURL const&) (/coolo/prod/kdelibs/kio/kio/kdirlister .cpp:1437) ==23659== by 0x40570EAC: KDirListerCache::FilesRemoved(KURL::List const&) (/coolo/prod/kdelibs/kio/kio/k dirlister.cpp:663)
another (most likely related log). If I go into the qt/src/kernel, then delete -rf qt the side bar gets a signal that src/kernel is removed, but fails to remove the other dirs below qt, so as soon as you click into the list view, it crashes. I hope someone of you can have a look. This is really biting us ;( kio (KDirListerCache): [void KDirListerCache::slotResult(KIO::Job*)] finished listing file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel kio (KTrader): KServiceTypeProfile::offers( ThumbCreator, ) kio (KTrader): Returning 12 offers kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/makepsheader.pl kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/q1xcompatibility.h kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qabstractlayout.cpp kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qabstractlayout.h kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qaccel.cpp kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qaccel.h kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qaccessible.cpp kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qaccessible.h kio (KIOJob): error 11 /suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qaccessible.h kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qapplication.cpp kio (KIOJob): error 11 /suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qapplication.cpp kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qapplication.h kio (KIOJob): error 11 /suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qapplication.h kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qapplication_p.h kio (KIOJob): error 11 /suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qapplication_p.h kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qapplication_x11.cpp kio (KIOJob): error 11 /suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qapplication_x11.cpp kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qasyncimageio.cpp kio (KIOJob): error 11 /suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qasyncimageio.cpp kio (KIOJob): stat file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel/qasyncimageio.h kio (KDirListerCache): [void KDirListerCache::updateDirectory(const KURL&)] file:/suse/coolo/prod/qt-x11-free-3.1.2 kio (KDirListerCache): [void KDirListerCache::updateDirectory(const KURL&)] update started in file:/suse/coolo/prod/qt-x11-free-3.1.2 kio (KDirListerCache): [virtual void KDirListerCache::FilesRemoved(const KURL::List&)] konqtree: KonqSidebarDirTreeModule::slotDeleteItem( file:/suse/coolo/prod/qt-x11-free-3.1.2/src ) konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/3rdparty konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/attic konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/canvas konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/codecs konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/compat konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/dialogs konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/embedded konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/iconview konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/moc konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/network konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/opengl konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/sql konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/styles konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/table konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/tmp konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/tools konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/widgets konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/workspace konqtree: 0x49fbd7cc KonqSidebarDirTreeModule::removeSubDir item=file:/suse/coolo/prod/qt-x11-free-3.1.2/src/xml kio (KIOJob): Job::kill this=0x4b7c5464 m_progressId=0 quietly=true kio (Scheduler): Scheduler: killing slave 23656 kio (Slave): killing slave pid=23656 (file://) kio (KIOJob): Job::kill this=0x4b81ffe8 m_progressId=0 quietly=true kio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*)] 0x46817610 kio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x46817610 url: file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel kio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x46817610 item moved into cache: file:/suse/coolo/prod/qt-x11-free-3.1.2/src/kernel kio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x49c87a70 url: file:/suse/coolo/prod/qt-x11-free-3.1.2/src kio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x49c87a70 item moved into cache: file:/suse/coolo/prod/qt-x11-free-3.1.2/src kio (KDirListerCache): KDirListerCache::removeDirFromCache file:/suse/coolo/prod/qt-x11-free-3.1.2/src kio (KDirListerCache): [void KDirListerCache::slotFileDirtyDelayed()] /suse/coolo/prod/qt-x11-free-3.1.2 kio (KIOJob): error 11 /suse/coolo/prod/qt-x11-free-3.1.2 kio (KDirListerCache): [void KDirListerCache::slotUpdateResult(KIO::Job*)] finished update file:/suse/coolo/prod/qt-x11-free-3.1.2 konqtree: KonqSidebarDirTree::slotListingStopped file:/suse/coolo/prod/qt-x11-free-3.1.2 konqtree: m_selectAfterOpening kio (KDirListerCache): [void KDirListerCache::updateDirectory(const KURL&)] file:/suse/coolo/prod kio (KDirListerCache): [void KDirListerCache::updateDirectory(const KURL&)] update started in file:/suse/coolo/prod kio (KDirListerCache): [virtual void KDirListerCache::FilesRemoved(const KURL::List&)] kio (KDirListerCache): [void KDirListerCache::slotUpdateResult(KIO::Job*)] finished update file:/suse/coolo/prod konqtree: KonqSidebarDirTree::slotListingStopped file:/suse/coolo/prod konqtree: m_selectAfterOpening kio (KDirListerCache): [void KDirListerCache::slotFileDirtyDelayed()] /suse/coolo/prod konqtree: KonqSidebarDirTreeModule::slotRefreshItems 1 entries. First: file:/suse/coolo/prod ==26289== ==26289== Invalid read of size 1 ==26289== at 0x403097B6: KFileItem::isLink() const (/coolo/KDE/include/kfileitem.h:155) ==26289== by 0x4171043C: QListView::drawContentsOffset(QPainter*, int, int, int, int, int, int) (widgets/qlistview.cpp:2793) ==26289== by 0x41746C5E: QScrollView::viewportPaintEvent(QPaintEvent*) (widgets/qscrollview.cpp:1687) ==26289== by 0x407ED587: KListView::viewportPaintEvent(QPaintEvent*) (/coolo/prod/kdelibs/kdeui/klistview.cpp:1837) ==26289== by 0x41746438: QScrollView::eventFilter(QObject*, QEvent*) (widgets/qscrollview.cpp:1475) ==26289== by 0x41713811: QListView::eventFilter(QObject*, QEvent*) (widgets/qlistview.cpp:3684) ==26289== by 0x416382CD: QObject::activate_filters(QEvent*) (kernel/qobject.cpp:835) ==26289== by 0x4163813F: QObject::event(QEvent*) (kernel/qobject.cpp:668) ==26289== by 0x4167137B: QWidget::event(QEvent*) (kernel/qwidget.cpp:4327) ==26289== by 0x415D40B1: QApplication::internalNotify(QObject*, QEvent*) (kernel/qapplication.cpp:2363) ==26289== by 0x415D3D29: QApplication::notify(QObject*, QEvent*) (kernel/qapplication.cpp:2286) ==26289== by 0x409FC3B6: KApplication::notify(QObject*, QEvent*) (/coolo/prod/kdelibs/kdecore/kapplication.cpp:463) ==26289== by 0x4025D4FC: QApplication::sendEvent(QObject*, QEvent*) (/coolo/prod/qt-copy/include/qapplication.h:478) ==26289== by 0x415A7BBA: QWidget::repaint(int, int, int, int, bool) (kernel/qwidget_x11.cpp:1444) ==26289== Address 0x4A28CDAC is 80 bytes inside a block of size 124 free'd ==26289== at 0x4014E266: __builtin_delete (in /usr/lib/valgrind/valgrind.so) ==26289== by 0x4014E284: operator delete(void*) (in /usr/lib/valgrind/valgrind.so) ==26289== by 0x40569DAB: KFileItem::~KFileItem() (/coolo/prod/kdelibs/kio/kio/kfileitem.cpp:154) ==26289== by 0x40570EC7: KDirListerCache::FilesRemoved(KURL::List const&) (/coolo/prod/kdelibs/kio/kio/kdirlister.cpp:630) ==26289== by 0x40571A50: KDirListerCache::slotFileDeleted(QString const&) (/coolo/prod/kdelibs/kio/kio/kdirlister.cpp:826) ==26289== by 0x405794E2: KDirListerCache::qt_invoke(int, QUObject*) (kio/kio/kdirlister_p.moc:129) ==26289== by 0x4163A48F: QObject::activate_signal(QConnectionList*, QUObject*) (kernel/qobject.cpp:2226) ==26289== by 0x4163A903: QObject::activate_signal(int, QString) (kernel/qobject.cpp:2293) ==26289== by 0x40530714: KDirWatch::deleted(QString const&) (kio/kio/kdirwatch.moc:107) ==26289== by 0x405304F8: KDirWatch::setDeleted(QString const&) (/coolo/prod/kdelibs/kio/kio/kdirwatch.cpp:1404) ==26289== by 0x4052E8B0: KDirWatchPrivate::emitEvent(KDirWatchPrivate::Entry*, int, QString const&) (/coolo/prod/kdelibs/kio/kio/kdirwatch.cpp:938) ==26289== by 0x4052EA9E: KDirWatchPrivate::slotRescan() (/coolo/prod/kdelibs/kio/kio/kdirwatch.cpp:1005) ==26289== by 0x405309E8: KDirWatchPrivate::qt_invoke(int, QUObject*) (kio/kio/kdirwatch_p.moc:88) ==26289== by 0x4163A48F: QObject::activate_signal(QConnectionList*, QUObject*) (kernel/qobject.cpp:2226) ==26289==
Hehe, I just wanted to ask for console output and now, after hitting reload, here we go ;-) I wasn't able to reproduce the above Konqy crash but I crashed it when closing Konqy in line 444, kdirlister.cpp. No idea yet how this happened though and looks like a hard bug :-( I will try Coolo's way as well, however, I need some sleep first, it's really late already.
try under valgrind, accessing deleted memory only seldomely crashes in the line that accesses it ;(
BR50888 has a trace that looks similar too coolo's trace of #6: #0 0x40ed62e9 in wait4 () from /lib/libc.so.6 #1 0x40f48704 in sys_sigabbrev () from /lib/libc.so.6 #2 0x40d79c84 in waitpid () from /lib/libpthread.so.0 #3 0x4057134a in KCrash::defaultCrashHandler () from /usr/lib/libkdecore.so.4 #4 0x40e61b88 in sigaction () from /lib/libc.so.6 #5 0x401954b1 in KMimeType::findByURL () from /usr/lib/libkio.so.4 #6 0x401ba22e in KFileItem::determineMimeType () from /usr/lib/libkio.so.4 #7 0x401ba1a9 in KFileItem::mimetype () from /usr/lib/libkio.so.4 #8 0x401d5b68 in KIO::PreviewJob::startPreview () from /usr/lib/libkio.so.4 #9 0x401d562a in KIO::PreviewJob::qt_invoke () from /usr/lib/libkio.so.4 #10 0x4089d0e9 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #11 0x40afd8b3 in QSignal::signal () from /usr/lib/libqt-mt.so.3 #12 0x408b2765 in QSignal::activate () from /usr/lib/libqt-mt.so.3 #13 0x408b7be3 in QSingleShotTimer::event () from /usr/lib/libqt-mt.so.3 #14 0x4084b193 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 #15 0x4084af94 in QApplication::notify () from /usr/lib/libqt-mt.so.3 #16 0x40508a1a in KApplication::notify () from /usr/lib/libkdecore.so.4 #17 0x4082e483 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3 #18 0x408103ec in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3 #19 0x4085c6ee in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3 #20 0x4085c64b in QEventLoop::exec () from /usr/lib/libqt-mt.so.3 #21 0x4084b2ea in QApplication::exec () from /usr/lib/libqt-mt.so.3 #22 0x411cfe3c in main () from /usr/lib/konqueror.so Crash occurred while moving files around. These KFileItems are a real pain in the ass since they are owned by the KDirLister but they are passed around everywhere. You must be very carefull to invalidate them all whenever KDirLister says it has deleted one. It would have saved a lot of crashes if they had been refcounted instead. I think there are a lot of crashes due to the volatile nature of KFileItems but it will be hard to judge how many actual bugs there are that cause them. I think I fixed the crash reported by coolo under #7 in HEAD, can you see if you can still reproduce that one with an updated konqueror/sidebar?
*** Bug 50888 has been marked as a duplicate of this bug. ***
*** Bug 51309 has been marked as a duplicate of this bug. ***
Subject: Re: Deleting the currently open dir crashed Konqueror On Thursday 22 May 2003 06:06, you wrote: > These KFileItems are a real pain in the ass since they are owned by the > KDirLister but they are passed around everywhere. You must be very carefull > to invalidate them all whenever KDirLister says it has deleted one. It > would have saved a lot of crashes if they had been refcounted instead. Hmm, maybe... but then we need to change a lot of code outside of KDirLister. Or am I missing something in this regard? Do you have an easy way to do it? The only problems with the current approach that I can think of are the following: - someone deletes a KFileItem (doesn't happen anywhere, right?) - someone takes KFileItems from KDirLister, deletes KDirLister and keeps using the KFileItems. Bad idea, obviously. That used to crash the app immediately when we didn't have KDirListerCache, but now the items are cached for a while so you won't notice such misuse immediately. What we might do is disable the cache for a while when debugging by setting the max. cost to 0. Anything else? > I think there are a lot of crashes due to the volatile nature of KFileItems > but it will be hard to judge how many actual bugs there are that cause > them. Well, should be easy (sort of ;) with the above approach and valgrind... > I think I fixed the crash reported by coolo under #7 in HEAD, can you see > if you can still reproduce that one with an updated konqueror/sidebar? Good, thanks! Didn't have a chance to look at it yet though. And JFYI: my semester almost finished and I have to hand in 4 assignments the next ten days and 4 examinations the next three weeks. Also, I have to look for new accommodation, so I probably won't be able to fix much until then, sorry about that. But as it seems, KDE 3.2 is far away anyway... ;-)) [yeah, bad excuse, I know] Cheers,
The crash reported in #2 seems very explainable: KonqKfmIconView::showDirectoryOverlay(KFileIVI* item) calls item->setShowDirectoryOverlay( true ) which creates a KIVDirectoryOverlay. This KIVDirectoryOverlay object is owned by item but stored in m_paOutstandingOverlays. If such item now gets deleted it will later on still be referenced when it gets pop'ed from m_paOutstandingOverlays in KonqKfmIconView::slotDirectoryOverlayFinished() *CRASH* Even if it doesn't get deleted, item->item() will be no longer valid. Suggested fix: * Either make m_paOutstandingOverlays a QPtrDict<KIVDirectoryOverlay> indexed by item. * Or add a function to KFileIVI that returns its KIVDirectoryOverlay and make m_paOutstandingOverlays a list of KFileIVI. Then remove the KFileIVI from m_paOutstandingOverlays in KonqKfmIconView::slotDeleteItem If the KIVDirectoryOverlay associated with this KFileIVI was the current active one I suspect that KonqKfmIconView::slotDirectoryOverlayFinished() may never get called again. In that case we should call KonqKfmIconView::slotDirectoryOverlayFinished directly from there. Must be a bit careful that we don't end up starting overlays in KonqKfmIconView::slotDirectoryOverlayFinished only to have them deleted directly after in the next call to KonqKfmIconView::slotDeleteItem. That would be a waste of CPU. Depends on call pattern to KonqKfmIconView::slotDeleteItem. The remark in KonqKfmIconView::slotDeleteItem about not deleting the item to avoid crashes sounds very suspicious. It should be deleted there and if that causes crashes then that's because it is referenced when it no longer should, and that should be fixed then.
Some stress testing gave me following warning from valgrind: ==14495== at 0x40A34AB8: KURL::equals(KURL const&, bool) const (kurl.h:427) ==14495== by 0x40A34A85: KURL::cmp(KURL const&, bool) const (kurl.cpp:891) ==14495== by 0x4056279E: KDirLister::slotJobToBeKilled(KURL const&) (/home/bastian/cvs/qt-copy/include/qmap.h:143) ==14495== by 0x4056364D: KDirLister::qt_invoke(int, QUObject*) (kdirlister.moc:413) ==14495== by 0x40E367ED: QObject::activate_signal(QConnectionList*, QUObject*) (kernel/qobject.cpp:2232) ==14495== by 0x40562CC9: KDirLister::completed(KURL const&) (/home/bastian/cvs/qt-copy/include/private/qucom_p.h:124) ==14495== by 0x4055C53B: KDirListerCache::slotUpdateResult(KIO::Job*) (kdirlister.cpp:1351) ==14495== by 0x40563D62: KDirListerCache::qt_invoke(int, QUObject*) (kdirlister_p.moc:137) ==14495== by 0x40E366B7: QObject::activate_signal(QConnectionList*, QUObject*) (kernel/qobject.cpp:2212) ==14495== by 0x404AC376: KIO::Job::result(KIO::Job*) (/home/bastian/cvs/qt-copy/include/private/qucom_p.h:124) Apperantly there is a dirlister with a job in d->jobData that has already been deleted. Not sure how that can happen but one theory is that somehow two jobs for the same url get in there and that then the wrong one gets removed. Which makes me wonder... why does KDirLister::slotJobToBeKilled(KURL) get called in such a difficult way from a signal. Wouldn't it be much more reliable if KDirListerCache called something like "KDirLister::jobKilled(KIO::Job *)" directly?
I think it will be a lot of work to make KFileItem refcounted while maintaining BC. Would be a good change for KDE 4 though.
*** Bug 50722 has been marked as a duplicate of this bug. ***
I noticed that KDirLister may emit "canceled" when being deleted. I think it should stay quiet when being deleted, no? (the sidebar crashed out of surprise)
Subject: Re: Deleting the currently open dir crashed Konqueror On Friday 23 May 2003 23:38, you wrote: > I noticed that KDirLister may emit "canceled" when being deleted. I think > it should stay quiet when being deleted, no? (the sidebar crashed out of > surprise) Man, you're making a hell out of my life... on one screen I'm trying to fix >1000 lines of lisp code with both eyes closed already and on the next one Waldo keeps mail-bombing me with one KDirLister bug/crash after another ;-{ Ok, anyway, let's answer the question: no, IMHO KDirLister must emit canceled when being deleted because we have a lot of code that relies on the canceled() and/or completed() signals. For instance, you might wish to stop the spinning wheel in Konqy or update the statusbar etc...[1] if an app crashes because of that, it's its own fault, heh! ;-) and needs fixing. What was the bt and why did it crash on receiving that signal? Honestly, it is much cleaner design as well to emit a completed() or canceled() for ever started() signal. And furthermore, if we, highly hypothetical, change it now, this would break compatibility with the old lister. I even think I added that on purpose but only IIRC.... Any real objections to that? ;) [1] and there are those crazy (well, in fact kinky) people creating a KDirLister on request and once the user presses stop (or anything like that) or the listing finished just delete the lister again and let it emit the signals automatically. As long as you only extract the information from the KFileItems that works...
I am preparing a KDirLister patch that addresses the problem outlined in #15. Overall KDirLister seems to be quite solid and most problems that I have identified seem to be caused by code using KDirLister and not KDirLister itself. I have one fundamental problem left though: KDirLister uses the redirection signal to signal renames. That's a problem because the semantics of redirection and renaming are different: A redirection basically indicates an alternative name (URL) for a certain resource, while a rename indicates a new name (URL) for a resource. In a treeview, in case of a redirection, I need to remember both names for the corresponding node, but in case of a rename, I should only need to remember the new name. I guess replacing the redirection() signal with a rename() signal isn't backwards compatible, maybe I can add an extra redirection(KURL, KURL, bool renamed) signal?
Subject: Re: Deleting the currently open dir crashed Konqueror On Tuesday 27 May 2003 19:24, you wrote: > ------- Additional Comments From bastian@kde.org 2003-05-27 11:24 ------- > I am preparing a KDirLister patch that addresses the problem outlined in > #15. Overall KDirLister seems to be quite solid and most problems that I > have identified seem to be caused by code using KDirLister and not > KDirLister itself. Thanks for both! That sounds really good :) Although I have a crash myself that still needs fixing. But we're getting there. > I have one fundamental problem left though: KDirLister uses the redirection > signal to signal renames. That's a problem because the semantics of > redirection and renaming are different: A redirection basically indicates > an alternative name (URL) for a certain resource, while a rename indicates > a new name (URL) for a resource. In a treeview, in case of a redirection, I > need to remember both names for the corresponding node, but in case of a > rename, I should only need to remember the new name. Hmm... why do you need both names? And why isn't this possible with the current redirection(KURL, KURL) signal? That's exactly for treeviews... > I guess replacing the redirection() signal with a rename() signal isn't > backwards compatible, maybe I can add an extra redirection(KURL, KURL, bool > renamed) signal? Well, if you can give me a reasonable explanation? ;-)
The problem is that with redirection(KURL, KURL) I don't know if it is a rename or a redirection. Let me explain the difference. Assume the following treeview: + url:/path/dir url:/path/dir/file1 When I get a redirection url:/path/dir/file1 --> otherurl:/otherpath the treeview should become: + url:/path/dir url:/path/dir/file1 (otherurl:/otherpath) The node should be accessible as both url:/path/dir/file1 as well as otherurl:/otherpath because operations that acces the node as a child of url:/path/dir will refer to it as url:/path/dir/file1, but operations involving the contents of otherurl:/otherpath will refer to this node as otherurl:/otherpath. But when I get a rename url:/path/dir/file1 --> url:/path/dir/file2 the treeview should become: + url:/path/dir url:/path/dir/file2 The original name url:/path/dir/file1 should be dropped completely because it no longer has any relation with this node, the user could create a new node url:/path/dir/file1 and that should not be confused in any way with url:/path/dir/file2.
*** Bug 59044 has been marked as a duplicate of this bug. ***
*** Bug 50154 has been marked as a duplicate of this bug. ***
Backtrace from BR50154: #5 <signal handler called> #6 0x415e9c3e in KonqSidebarDirTreeModule::slotListingStopped () from /opt/kde3/lib/kde3/konq_sidebartree_dirtree.so #7 0x415ea3f1 in KonqSidebarDirTreeModule::qt_invoke () from /opt/kde3/lib/kde3/konq_sidebartree_dirtree.so #8 0x407f45c5 in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3 #9 0x401c54a5 in KDirLister::canceled () from /opt/kde3/lib/libkio.so.4 #10 0x401bfeb4 in KDirListerCache::forgetDirs () from /opt/kde3/lib/libkio.so.4 #11 0x401c3556 in KDirListerCache::deleteDir () from /opt/kde3/lib/libkio.so.4 #12 0x401c0a57 in KDirListerCache::FilesRemoved () from /opt/kde3/lib/libkio.so.4 #13 0x401c1034 in KDirListerCache::slotFileDeleted () from /opt/kde3/lib/libkio.so.4 #14 0x401c64e5 in KDirListerCache::qt_invoke () from /opt/kde3/lib/libkio.so.4 #15 0x407f4564 in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3 #16 0x407f480b in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3 #17 0x40194949 in KDirWatch::deleted () from /opt/kde3/lib/libkio.so.4
Subject: Re: Deleting the currently open dir crashed Konqueror Ok. Now what I still didn't get: > The node should be accessible as both url:/path/dir/file1 as well as > otherurl:/otherpath because operations that acces the node as a child of > url:/path/dir will refer to it as url:/path/dir/file1, but operations > involving the contents of otherurl:/otherpath will refer to this node as > otherurl:/otherpath. Why? Why not just using the new url and updating the KFileItem accordingly? The way I saw it was like that: in the beginning the node is just an entry point for the new url which is unknown at that time. When you click on it the system gets to know about the new url and just forgets about the old one. Is there a case the _user_ wants/needs to know the old url?
*** Bug 52298 has been marked as a duplicate of this bug. ***
*** Bug 52398 has been marked as a duplicate of this bug. ***
*** Bug 52660 has been marked as a duplicate of this bug. ***
*** Bug 53456 has been marked as a duplicate of this bug. ***
> Is there a case the _user_ wants/needs to know the old url? It's not about the user, it's about the software being able to properly track the items. I think that when url:/path/dir gets updated it refers to the item as url:/path/dir/file1. If you would change the url of the KFIleItem to otherurl:/otherpath it would no longer be able to properly detect changes concerning url:/path/dir/file1. E.g. it might not notice it when it gets deleted, and it may incorrectly report a new url:/path/dir/file1 item.
Subject: Re: Deleting the currently open dir crashed Konqueror Ok, that sounds reasonable. I don't know enough about redirections and their use yet to judge if your case is really possible or not, I just want to add the following: KDirLister would certainly have no problem with dropping the old url because it stores the KFileItems regardless of their url, they are grouped by their common parent (usually the parent directory), the items itself can carry whatever they want. Applications using the items *should* have no problems either because KDirLister signals items not by their url but by using the pointer to the KFileItem object. But I'm mostly mostly guessing here. So if you still think it's necessary, just go for an additional signal. I'll have a look at that later :-)
*** Bug 57912 has been marked as a duplicate of this bug. ***
can't crash it here (4 days old HEAD)
*** Bug 60915 has been marked as a duplicate of this bug. ***
*** Bug 61635 has been marked as a duplicate of this bug. ***
*** Bug 65130 has been marked as a duplicate of this bug. ***
works in cvs head
*** Bug 71840 has been marked as a duplicate of this bug. ***
*** Bug 69162 has been marked as a duplicate of this bug. ***