Summary: | Dolphin crashed while flagging the show hidden file (assert KDirListerCache::printDebug,KDirListerCache::updateDirectory) | ||
---|---|---|---|
Product: | [Unmaintained] kio | Reporter: | Dhiraj Kumar Hazra <dhirajhazra> |
Component: | general | Assignee: | David Faure <faure> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | alex.merry, andresbajotierra, balcaen.john, bugs.kde, Carth_Onasi, faure, fbouchet, jtamate, julee.vv, magnus, obroni, pdezac-linux, pfmiller, rapsys, simon, vivymarcy, wilderkde |
Priority: | NOR | ||
Version: | SVN | ||
Target Milestone: | --- | ||
Platform: | Mandriva RPMs | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 4.5.3 | |
Sentry Crash Report: | |||
Attachments: | New crash information added by DrKonqi |
Description
Dhiraj Kumar Hazra
2009-05-20 15:13:25 UTC
Hah, good assert. Adding David Faure to the CC. Thanks Yep, precise assert, but I need to be able to reproduce the crash. Toggling hidden files in $HOME works here (trunk 21/05/2009) yes.I am not able to reproduce the crash.But the crash happened exactly after I flagged the hidden file box.May be some action preceded this one which is responsible for the crash but I am not able to recall that.You can close it. If I can reproduce it afterwards I will reopen it. thanks dhiraj I got a new dolphin crash.I tried to open 3 folders from the desktopview quickly.It is happening almost everytime. The backtrace looks same.I will try to attach the crash-video from recordmydesktop. ============================================================================ Application: Dolphin (dolphin), signal: Aborted [KCrash Handler] #6 0xffffe424 in __kernel_vsyscall () #7 0xb645cc00 in raise () from /lib/i686/libc.so.6 #8 0xb645e668 in abort () from /lib/i686/libc.so.6 #9 0xb66d5b14 in qt_message_output (msgType=QtFatalMsg, buf=0x6 <Address 0x6 out of bounds>) at global/qglobal.cpp:2017 #10 0xb7da52e8 in ~QDebug (this=0xbfc18154) at /usr/lib/qt4/include/QtCore/qdebug.h:83 #11 0xb7e00353 in KDirListerCache::printDebug (this=0x8fabb00) at /usr/src/debug/kdelibs-4.2.87svn969966/kio/kio/kdirlister.cpp:1855 #12 0xb7e095ec in KDirListerCache::updateDirectory (this=0x8fabb00, _dir=@0x96af6d0) at /usr/src/debug/kdelibs-4.2.87svn969966/kio/kio/kdirlister.cpp:619 #13 0xb7e08832 in KDirListerCache::emitItemsFromCache (this=0x8fabb00, lister=0x944e038, items=@0x96af6d8, rootItem=@0x96af6dc, _url=@0x96af6d0, _reload=true, _emitCompleted=true) at /usr/src/debug/kdelibs-4.2.87svn969966/kio/kio/kdirlister.cpp:304 #14 0xb7e088e7 in KDirLister::Private::CachedItemsJob::done (this=0x96af6c0) at /usr/src/debug/kdelibs-4.2.87svn969966/kio/kio/kdirlister.cpp:263 #15 0xb7e08966 in KDirLister::Private::CachedItemsJob::qt_metacall (this=0x96af6c0, _c=QMetaObject::InvokeMetaMethod, _id=26, _a=0x96af680) at /usr/src/debug/kdelibs-4.2.87svn969966/build/kio/kdirlister_p.moc:157 #16 0xb67e626a in QMetaCallEvent::placeMetaCall (this=0x96af6f0, object=0x96af6c0) at kernel/qobject.cpp:489 #17 0xb67e7986 in QObject::event (this=0x96af6c0, e=0x96af6f0) at kernel/qobject.cpp:1109 #18 0xb69dbf6c in QApplicationPrivate::notify_helper (this=0x8f613c0, receiver=0x96af6c0, e=0x96af6f0) at kernel/qapplication.cpp:4057 #19 0xb69e3abe in QApplication::notify (this=0xbfc18c14, receiver=0x96af6c0, e=0x96af6f0) at kernel/qapplication.cpp:3604 #20 0xb7730738 in KApplication::notify (this=0xbfc18c14, receiver=0x96af6c0, event=0x96af6f0) at /usr/src/debug/kdelibs-4.2.87svn969966/kdeui/kernel/kapplication.cpp:302 #21 0xb67d71ce in QCoreApplication::notifyInternal (this=0xbfc18c14, receiver=0x96af6c0, event=0x96af6f0) at kernel/qcoreapplication.cpp:610 #22 0xb67d7d1a in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8f42810) at ../../src/corelib/kernel/qcoreapplication.h:213 #23 0xb67d7efc in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1140 #24 0xb68039fd in postEventSourceDispatch (s=0x8f634b8) at ../../src/corelib/kernel/qcoreapplication.h:218 #25 0xb5d7154a in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #26 0xb5d74bb4 in ?? () from /usr/lib/libglib-2.0.so.0 #27 0xb5d74d3f in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #28 0xb6803608 in QEventDispatcherGlib::processEvents (this=0x8f6e8d8, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:324 #29 0xb6a7eaea in QGuiEventDispatcherGlib::processEvents (this=0x8f6e8d8, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202 #30 0xb67d57bd in QEventLoop::processEvents (this=0xbfc18b74, flags=) at kernel/qeventloop.cpp:149 #31 0xb67d5c09 in QEventLoop::exec (this=0xbfc18b74, flags={i = 0}) at kernel/qeventloop.cpp:200 #32 0xb67d7fd0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888 #33 0xb69dbdd4 in QApplication::exec () at kernel/qapplication.cpp:3526 #34 0x0807721f in main (argc=6, argv=0xbfc18dd4) at /usr/src/debug/kdebase-4.2.87svn969966/apps/dolphin/src/main.cpp:94 Bug 198350 seems to be related ~same~ backtrace but with a different situation. Thanks *** Bug 199215 has been marked as a duplicate of this bug. *** *** Bug 200147 has been marked as a duplicate of this bug. *** *** Bug 200763 has been marked as a duplicate of this bug. *** *** Bug 199187 has been marked as a duplicate of this bug. *** *** Bug 200407 has been marked as a duplicate of this bug. *** *** Bug 198350 has been marked as a duplicate of this bug. *** *** Bug 204274 has been marked as a duplicate of this bug. *** *** Bug 204541 has been marked as a duplicate of this bug. *** *** Bug 205410 has been marked as a duplicate of this bug. *** (In reply to comment #14) > *** Bug 205410 has been marked as a duplicate of this bug. *** I reproduced the bug, i don't know how. K3b is kept open after burnig DVD. Dolphin is also opened with 3 tabs : on a tab, i tried to open a video from the hd, and K3b crashed. The video i opened belongs to k3b data burning project. Below the new trace. ===================================== Application: K3b (k3b), signal: Aborted [Current thread is 1 (Thread 0xb44e16d0 (LWP 20455))] Thread 2 (Thread 0xb0a19b70 (LWP 29726)): #0 0xffffe424 in __kernel_vsyscall () #1 0xb502ed12 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/i686/libpthread.so.0 #2 0xb5194744 in pthread_cond_timedwait () from /lib/i686/libc.so.6 #3 0xb5d1189c in thread_sleep (ti=0xb0a19300) at thread/qthread_unix.cpp:297 #4 0xb5d11a34 in QThread::sleep (secs=2) at thread/qthread_unix.cpp:311 #5 0xb7d74292 in K3b::MediaCache::PollThread::run () from /usr/lib/libk3b.so.6 #6 0xb5d11e93 in QThreadPrivate::start (arg=0x96b5ff8) at thread/qthread_unix.cpp:188 #7 0xb502a885 in start_thread () from /lib/i686/libpthread.so.0 #8 0xb518657e in clone () from /lib/i686/libc.so.6 Thread 1 (Thread 0xb44e16d0 (LWP 20455)): [KCrash Handler] #6 0xffffe424 in __kernel_vsyscall () #7 0xb50d9611 in raise () from /lib/i686/libc.so.6 #8 0xb50daf62 in abort () from /lib/i686/libc.so.6 #9 0xb5d09a14 in qt_message_output (msgType=QtFatalMsg, buf=0x6 <Address 0x6 out of bounds>) at global/qglobal.cpp:2042 #10 0xb79d1628 in ~QDebug (this=0xbffdf6d4) at /usr/lib/qt4/include/QtCore/qdebug.h:83 #11 0xb7a2c423 in KDirListerCache::printDebug (this=0x985b7e0) at /usr/src/debug/kdelibs-4.3.0/kio/kio/kdirlister.cpp:1855 #12 0xb7a3568c in KDirListerCache::updateDirectory (this=0x985b7e0, _dir=@0xbffdfa5c) at /usr/src/debug/kdelibs-4.3.0/kio/kio/kdirlister.cpp:619 #13 0xb7a368fc in KDirListerCache::slotFileDirty (this=0x985b7e0, path=@0xbffdfc6c) at /usr/src/debug/kdelibs-4.3.0/kio/kio/kdirlister.cpp:994 #14 0xb7a37713 in KDirListerCache::qt_metacall (this=0x985b7e0, _c=QMetaObject::InvokeMetaMethod, _id=8, _a=0xbffdfba8) at /usr/src/debug/kdelibs-4.3.0/build/kio/kdirlister_p.moc:95 #15 0xb5e1fc44 in QMetaObject::activate (sender=0x985b970, from_signal_index=4, to_signal_index=4, argv=0xbffdfba8) at kernel/qobject.cpp:3112 #16 0xb5e20965 in QMetaObject::activate (sender=0x985b970, m=0xb7bef2e4, local_signal_index=0, argv=0xbffdfba8) at kernel/qobject.cpp:3186 #17 0xb7a49d15 in KDirWatch::dirty (this=0x985b970, _t1=@0xbffdfc6c) at /usr/src/debug/kdelibs-4.3.0/build/kio/kdirwatch.moc:83 #18 0xb7a4a046 in KDirWatch::setDirty (this=0x985b970, _file=@0xbffdfc6c) at /usr/src/debug/kdelibs-4.3.0/kio/kio/kdirwatch.cpp:1748 #19 0xb7a4b332 in KDirWatchPrivate::emitEvent (this=0x985b9d8, e=0x98606e4, event=<value optimized out>, fileName=@0xbffdfd34) at /usr/src/debug/kdelibs-4.3.0/kio/kio/kdirwatch.cpp:1227 #20 0xb7a4ed67 in KDirWatchPrivate::slotRescan (this=0x985b9d8) at /usr/src/debug/kdelibs-4.3.0/kio/kio/kdirwatch.cpp:1319 #21 0xb7a50294 in KDirWatchPrivate::qt_metacall (this=0x985b9d8, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbffdfe3c) at /usr/src/debug/kdelibs-4.3.0/build/kio/kdirwatch_p.moc:73 #22 0xb5e1fc44 in QMetaObject::activate (sender=0x985ba20, from_signal_index=4, to_signal_index=4, argv=0x0) at kernel/qobject.cpp:3112 #23 0xb5e20965 in QMetaObject::activate (sender=0x985ba20, m=0xb5efc904, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3186 #24 0xb5e5b365 in QTimer::timeout (this=0x985ba20) at .moc/release-shared/moc_qtimer.cpp:128 #25 0xb5e25576 in QTimer::timerEvent (this=0x985ba20, e=0xbffe02b0) at kernel/qtimer.cpp:261 #26 0xb5e198fb in QObject::event (this=0x985ba20, e=0xbffe02b0) at kernel/qobject.cpp:1074 #27 0xb542d6cc in QApplicationPrivate::notify_helper (this=0x9583180, receiver=0x985ba20, e=0xbffe02b0) at kernel/qapplication.cpp:4056 #28 0xb543510e in QApplication::notify (this=0xbffe05dc, receiver=0x985ba20, e=0xbffe02b0) at kernel/qapplication.cpp:3603 #29 0xb6311528 in KApplication::notify (this=0xbffe05dc, receiver=0x985ba20, event=0xbffe02b0) at /usr/src/debug/kdelibs-4.3.0/kdeui/kernel/kapplication.cpp:302 #30 0xb5e0975e in QCoreApplication::notifyInternal (this=0xbffe05dc, receiver=0x985ba20, event=0xbffe02b0) at kernel/qcoreapplication.cpp:610 #31 0xb5e37c31 in QTimerInfoList::activateTimers (this=0x9580034) at ../../src/corelib/kernel/qcoreapplication.h:213 #32 0xb5e3547e in timerSourceDispatch (source=0x9580000) at kernel/qeventdispatcher_glib.cpp:165 #33 0xb4859b12 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #34 0xb485d3e8 in ?? () from /usr/lib/libglib-2.0.so.0 #35 0xb485d50e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #36 0xb5e353c8 in QEventDispatcherGlib::processEvents (this=0x95712e0, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:327 #37 0xb54cf51a in QGuiEventDispatcherGlib::processEvents (this=0x95712e0, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202 #38 0xb5e07d7d in QEventLoop::processEvents (this=0xbffe0534, flags=) at kernel/qeventloop.cpp:149 #39 0xb5e081c9 in QEventLoop::exec (this=0xbffe0534, flags={i = 0}) at kernel/qeventloop.cpp:201 #40 0xb5e0a660 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888 #41 0xb542d544 in QApplication::exec () at kernel/qapplication.cpp:3525 #42 0x0814dd11 in ?? () #43 0xb50c6a36 in __libc_start_main () from /lib/i686/libc.so.6 #44 0x0807e8b1 in _start () *** Bug 206174 has been marked as a duplicate of this bug. *** *** Bug 207644 has been marked as a duplicate of this bug. *** Bug 207252 has another testcase, while burning a ISO image with K3b. *** Bug 207252 has been marked as a duplicate of this bug. *** *** Bug 210642 has been marked as a duplicate of this bug. *** *** Bug 213425 has been marked as a duplicate of this bug. *** From bug 215817: --- What I was doing when the application crashed: K3b crashes at some random point when copying a dvd using the "copy medium" function. I've tried a handful of times, but it crashes everytime after some random time. *** Bug 215817 has been marked as a duplicate of this bug. *** *** Bug 199499 has been marked as a duplicate of this bug. *** It seems that the reporter of bug 224793 can reproduce the crash with K3b *** Bug 224793 has been marked as a duplicate of this bug. *** *** Bug 230173 has been marked as a duplicate of this bug. *** *** Bug 231784 has been marked as a duplicate of this bug. *** Created attachment 51338 [details]
New crash information added by DrKonqi
k3b (2.0.80) on KDE Platform 4.5.66 (4.6 >= 20100825) using Qt 4.7.0
- What I was doing when the application crashed:
Just kept open k3b showing a directory. (it happens even if k3b is burning). Then, move a file in that directory to another place.
it uses the kFatal() << "HUH? Lister" << listit ........ to abort the program.
-- Backtrace (Reduced):
#9 0x00007f61fbe8dad4 in QDebug::~QDebug (this=0x7ffff231da10, __in_chrg=<value optimized out>) at /usr/lib/qt4.5/include/QtCore/qdebug.h:85
#10 0x00007f61fbed9d78 in KDirListerCache::printDebug (this=0x28f3670) at /g/kde4svn/kdelibs/kio/kio/kdirlister.cpp:1925
#11 0x00007f61fbedbd42 in KDirListerCache::updateDirectory (this=0x28f3670, _dir=...) at /g/kde4svn/kdelibs/kio/kio/kdirlister.cpp:633
#12 0x00007f61fbee0acb in KDirListerCache::handleDirDirty (this=0x28f3670, url=...) at /g/kde4svn/kdelibs/kio/kio/kdirlister.cpp:1038
#13 0x00007f61fbee0c6f in KDirListerCache::slotFileDirty (this=0x28f3670, path=<value optimized out>) at /g/kde4svn/kdelibs/kio/kio/kdirlister.cpp:1009
To reproduce the crash, the file must be moved outside k3b. For example, with mv. Last console output: k3b(19555) KDirListerCache::updateDirectory: The unexpected happened. k3b(19555) KDirListerCache::updateDirectory: listers for KUrl("file:///e/descargadas") = (KDirLister(0x2419c90) ) k3b(19555) KDirListerCache::updateDirectory: job= QObject(0x0) k3b(19555): HUH? Lister KDirLister(0x2419c90) is supposed to be listing, but has no job! More information... I'm able to reproduce the crash everytime, but to do it I have to do the following: * start k3b showing a directory "b" under "a" (if it is not started there, just show "b" in the explorer part and restart k3b). * move a file in "a" to another directory (not "b"). The problem is that there is no job for directory "a", but also there are listers for "a" and no job could been killed. Translated to code: In the method "void KDirListerCache::updateDirectory( const KUrl& _dir )", it uses the else path in "if (job) {" and none of the listers has any "if (kdl->d->m_cachedItemsJob) {" If someone knows better than I do the code, I can test your patches, gather more debug information, ... Here you are a complete debug session before the crash (removed the process ID). /kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("trash:/") /kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///home/jtorres") /kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///") /kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///g/kde4svn") /kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///e/descargadas") /kio (KDirListerCache) KDirListerCache::listDir: Entry currently being listed: KUrl("trash:/") by (KDirLister(0x1ce09c0) ) /kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///e/a/b") /kio (KDirListerCache) KDirListerCache::forgetDirs: Killing update job for "file:///e/a/b" /kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///e/a/b") /kio (KDirListerCache) KDirListerCache::listDir: Entry currently being listed: KUrl("trash:/") by (KDirLister(0x1ce09c0) , KDirLister(0x1ebc530) ) /kio (KDirListerCache) KDirListerCache::listDir: Entry currently being listed: KUrl("trash:/") by (KDirLister(0x1ce09c0) , KDirLister(0x1ebc530) ) /kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///e") /kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///g/kde4svn") /kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///") /kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///e/descargadas") /kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///e/a/b") /kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("trash:/") /kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///home/jtorres") /kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///e/a") /kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///e") /kio (KDirListerCache) KDirListerCache::listDir: Entry already in use: KUrl("file:///e/a/b") /kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///e/a") /kio (KDirListerCache) KDirListerCache::slotFileDirty: "/e/a/kk1.txt" /kio (KDirListerCache) KDirListerCache::updateDirectory: KUrl("file:///e/a") KDirListerCache::updateDirectory: The unexpected happened. KDirListerCache::updateDirectory: listers for KUrl("file:///e/a") = (KDirLister(0x1cf9fb0) ) KDirListerCache::updateDirectory: job= QObject(0x0) KDirListerCache::updateDirectory: lister KDirLister(0x1cf9fb0) m_cachedItemsJob= QObject(0x0) /kio (KDirListerCache) KDirListerCache::printDebug: Items in use: /kio (KDirListerCache) KDirListerCache::printDebug: "file:///g/kde4svn" URL: KUrl("file:///g/kde4svn") rootItem: KUrl("file:///g/kde4svn") autoUpdates refcount: 1 complete: true "with 62 items." /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e" URL: KUrl("file:///e") rootItem: KUrl("file:///e") autoUpdates refcount: 1 complete: true "with 8 items." /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e/a" URL: KUrl("file:///e/a") rootItem: KUrl("file:///e/a") autoUpdates refcount: 1 complete: true "with 2 items." /kio (KDirListerCache) KDirListerCache::printDebug: "trash:/" URL: KUrl("trash:/") rootItem: KUrl("trash:/") autoUpdates refcount: 2 complete: true "with 75 items." /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e/a/b" URL: KUrl("file:///e/a/b") rootItem: KUrl("file:///e/a/b") autoUpdates refcount: 2 complete: true "with 1 items." /kio (KDirListerCache) KDirListerCache::printDebug: "file:///" URL: KUrl("file:///") rootItem: KUrl("file:///") autoUpdates refcount: 1 complete: true "with 54 items." /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e/descargadas" URL: KUrl("file:///e/descargadas") rootItem: KUrl("file:///e/descargadas") autoUpdates refcount: 1 complete: true "with 42 items." /kio (KDirListerCache) KDirListerCache::printDebug: "file:///home/jtorres" URL: KUrl("file:///home/jtorres") rootItem: KUrl("file:///home/jtorres") autoUpdates refcount: 1 complete: true "with 471 items." /kio (KDirListerCache) KDirListerCache::printDebug: Directory data: /kio (KDirListerCache) KDirListerCache::printDebug: "file:///g/kde4svn" 0 listers: "" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///g/kde4svn" 1 holders: " 0x1e04be0" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e" 0 listers: "" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e" 1 holders: " 0x1cf9fb0" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e/a" 1 listers: " 0x1cf9fb0" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e/a" 0 holders: "" /kio (KDirListerCache) KDirListerCache::printDebug: "trash:/" 0 listers: "" /kio (KDirListerCache) KDirListerCache::printDebug: "trash:/" 2 holders: " 0x1ce09c0 0x1ebc530" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e/a/b" 0 listers: "" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e/a/b" 2 holders: " 0x20dc7b0 0x1cf9fb0" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///" 0 listers: "" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///" 1 holders: " 0x1cf9fb0" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e/descargadas" 0 listers: "" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///e/descargadas" 1 holders: " 0x1e35e50" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///home/jtorres" 0 listers: "" /kio (KDirListerCache) KDirListerCache::printDebug: "file:///home/jtorres" 1 holders: " 0x1f06890" /kio (KDirListerCache) KDirListerCache::printDebug: Jobs: /kio (KDirListerCache) KDirListerCache::printDebug: Items in cache: : HUH? Lister KDirLister(0x1cf9fb0) is supposed to be listing, but has no job! Best Regards. I have a patch (that works for me) in the reviewboard http://svn.reviewboard.kde.org/r/5447/ SVN commit 1183938 by dfaure: Fix assertion "listers.isEmpty() || killed" (or "HUH? Lister ... is supposed to be listing" in debug mode) after a dirlister was put into the wrong list, in the following situation (happening at k3b startup) 1) A flat dirlister lists the contents of /a/b/, so this goes into the cache 2) A tree dirmodel for '/' tries to drill down to /a/b: it lists /a, then /a/b, finds items in the cache, creates a job to emit them, and then goes back to "Directory listing finished for /a, are we done with that dir?", but the code was not comparing urls, so because of the pending cached-item-job, it thought it was still listing that dir, and didn't mark it as done. Then the job for /a/b would be processed, but that didn't fix the status of /a. 3) And only when doing something else later on (e.g. deleting /a/foo, which triggers an update of /a), the inconsistency would show up and assert (lister marked as "still listing /a" but no associated job). Writing the unittest: 2h. Fixing the bug: 10mn. Writing this description: 20mn :-) With thanks to Jaime Torres for finding a way to reproduce the crash very reliably! FIXED-IN: 4.5.3 BUG: 193364 M +14 -7 kio/kdirlister.cpp M +2 -1 kio/kdirlister_p.h M +69 -18 tests/kdirmodeltest.cpp M +1 -0 tests/kdirmodeltest.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1183938 |