Bug 51215 - Deleting the currently open dir crashed Konqueror
Summary: Deleting the currently open dir crashed Konqueror
Status: RESOLVED WORKSFORME
Alias: None
Product: konqueror
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: VHI critical
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
: 50154 50722 50888 51309 52298 52398 52660 53456 57912 58552 59044 60915 61635 65130 69162 71840 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-11-26 07:58 UTC by Jesper Juhl
Modified: 2004-01-04 18:06 UTC (History)
19 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 Jesper Juhl 2002-11-26 07:58:52 UTC
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
Comment 1 Jesper Juhl 2002-12-20 02:02:26 UTC
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 :-( 
 
Comment 2 Luís Pedro Coelho 2002-12-25 18:37:27 UTC
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 
Comment 3 Maksim Orlovich 2003-05-16 01:00:01 UTC
*** Bug 58552 has been marked as a duplicate of this bug. ***
Comment 4 Maksim Orlovich 2003-05-16 01:09:35 UTC
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> 
 
 
Comment 5 Maksim Orlovich 2003-05-16 01:48:04 UTC
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.) 
 
Comment 6 Stephan Kulow 2003-05-16 14:51:31 UTC
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) 
 
Comment 7 Stephan Kulow 2003-05-16 15:41:52 UTC
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== 
 
Comment 8 Michael Brade 2003-05-16 16:00:45 UTC
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. 
Comment 9 Stephan Kulow 2003-05-16 20:22:57 UTC
try under valgrind, accessing deleted memory only seldomely crashes in the 
line that accesses it ;( 
Comment 10 Waldo Bastian 2003-05-21 22:06:05 UTC
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? 
 
 
 
 
Comment 11 Waldo Bastian 2003-05-21 22:07:53 UTC
*** Bug 50888 has been marked as a duplicate of this bug. ***
Comment 12 Waldo Bastian 2003-05-21 22:10:18 UTC
*** Bug 51309 has been marked as a duplicate of this bug. ***
Comment 13 Michael Brade 2003-05-22 14:18:10 UTC
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,
Comment 14 Waldo Bastian 2003-05-22 23:58:48 UTC
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. 
 
Comment 15 Waldo Bastian 2003-05-23 00:09:04 UTC
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? 
 
 
Comment 16 Waldo Bastian 2003-05-23 00:13:34 UTC
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. 
 
Comment 17 Waldo Bastian 2003-05-23 13:55:32 UTC
*** Bug 50722 has been marked as a duplicate of this bug. ***
Comment 18 Waldo Bastian 2003-05-23 15:38:01 UTC
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) 
Comment 19 Michael Brade 2003-05-23 16:19:47 UTC
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...
Comment 20 Waldo Bastian 2003-05-27 11:24:01 UTC
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? 
Comment 21 Michael Brade 2003-05-27 14:50:04 UTC
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? ;-)

Comment 22 Waldo Bastian 2003-05-27 15:28:45 UTC
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. 
 
 
Comment 23 Stephan Kulow 2003-05-27 20:13:08 UTC
*** Bug 59044 has been marked as a duplicate of this bug. ***
Comment 24 Waldo Bastian 2003-05-28 14:00:40 UTC
*** Bug 50154 has been marked as a duplicate of this bug. ***
Comment 25 Waldo Bastian 2003-05-28 14:05:26 UTC
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  
 
Comment 26 Michael Brade 2003-05-28 14:39:14 UTC
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?

Comment 27 Waldo Bastian 2003-05-28 21:55:39 UTC
*** Bug 52298 has been marked as a duplicate of this bug. ***
Comment 28 Waldo Bastian 2003-05-28 21:57:30 UTC
*** Bug 52398 has been marked as a duplicate of this bug. ***
Comment 29 Waldo Bastian 2003-05-28 22:00:07 UTC
*** Bug 52660 has been marked as a duplicate of this bug. ***
Comment 30 Waldo Bastian 2003-05-28 22:09:37 UTC
*** Bug 53456 has been marked as a duplicate of this bug. ***
Comment 31 Waldo Bastian 2003-05-29 17:21:38 UTC
> 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. 
Comment 32 Michael Brade 2003-05-30 14:35:21 UTC
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 :-)

Comment 33 Waldo Bastian 2003-05-30 20:41:52 UTC
*** Bug 57912 has been marked as a duplicate of this bug. ***
Comment 34 Kai Lahmann 2003-06-29 19:24:12 UTC
can't crash it here (4 days old HEAD) 
Comment 35 Thiago Macieira 2003-07-09 01:18:57 UTC
*** Bug 60915 has been marked as a duplicate of this bug. ***
Comment 36 Thiago Macieira 2003-07-24 22:19:12 UTC
*** Bug 61635 has been marked as a duplicate of this bug. ***
Comment 37 Stephan Kulow 2003-09-28 21:36:22 UTC
*** Bug 65130 has been marked as a duplicate of this bug. ***
Comment 38 Joseph Wenninger 2003-10-25 21:24:14 UTC
works in cvs head
Comment 39 Stephan Kulow 2004-01-04 18:05:54 UTC
*** Bug 71840 has been marked as a duplicate of this bug. ***
Comment 40 Stephan Kulow 2004-01-04 18:06:40 UTC
*** Bug 69162 has been marked as a duplicate of this bug. ***