Bug 193364 - Dolphin crashed while flagging the show hidden file (assert KDirListerCache::printDebug,KDirListerCache::updateDirectory)
Summary: Dolphin crashed while flagging the show hidden file (assert KDirListerCache::...
Status: RESOLVED FIXED
Alias: None
Product: kio
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: SVN
Platform: Mandriva RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: David Faure
URL:
Keywords:
: 198350 199187 199215 199499 200147 200407 200763 204274 204541 205410 206174 207252 207644 210642 213425 215817 224793 230173 231784 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-05-20 15:13 UTC by Dhiraj Kumar Hazra
Modified: 2010-10-08 21:30 UTC (History)
17 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.5.3


Attachments
New crash information added by DrKonqi (7.72 KB, text/plain)
2010-09-05 12:23 UTC, Jaime Torres
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dhiraj Kumar Hazra 2009-05-20 15:13:25 UTC
Version:            (using KDE 4.2.85)
OS:                Linux
Installed from:    Mandriva RPMs

not reproducible everytime.attaching the backtrace
-------------------------------------------------------
Application: Dolphin (dolphin), signal: Aborted
[KCrash Handler]
#6  0xffffe424 in __kernel_vsyscall ()
#7  0xb64e0c00 in raise () from /lib/i686/libc.so.6
#8  0xb64e2668 in abort () from /lib/i686/libc.so.6
#9  0xb6759c85 in qt_message_output (msgType=QtFatalMsg, buf=0xa0bd218 "dolphin(17100): HUH? Lister KDirLister(0x9ac7b80) is supposed to be listing, but has no job! ") at global/qglobal.cpp:2017
#10 0xb7e47c68 in ~QDebug (this=0xbfdc5830) at /usr/lib/qt4/include/QtCore/qdebug.h:83
#11 0xb7ea17c0 in KDirListerCache::printDebug (this=0x9b887a8) at /usr/src/debug/kdelibs-4.2.85/kio/kio/kdirlister.cpp:1855
#12 0xb7eaa97b in KDirListerCache::updateDirectory (this=0x9b887a8, _dir=@0xbfdc5bbc) at /usr/src/debug/kdelibs-4.2.85/kio/kio/kdirlister.cpp:619
#13 0xb7eabbbd in KDirListerCache::slotFileDirty (this=0x9b887a8, path=@0xbfdc5d78) at /usr/src/debug/kdelibs-4.2.85/kio/kio/kdirlister.cpp:994
#14 0xb7eac90b in KDirListerCache::qt_metacall (this=0x9b887a8, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfdc5ce0) at /usr/src/debug/kdelibs-4.2.85/build/kio/kdirlister_p.moc:95
#15 0xb6874f45 in QMetaObject::activate (sender=0x9bbc048, from_signal_index=4, to_signal_index=4, argv=0xbfdc5ce0) at kernel/qobject.cpp:3111
#16 0xb68767e5 in QMetaObject::activate (sender=0x9bbc048, m=0xb8074104, local_signal_index=0, argv=0xbfdc5ce0) at kernel/qobject.cpp:3185
#17 0xb7ebef15 in KDirWatch::dirty (this=0x9bbc048, _t1=@0xbfdc5d78) at /usr/src/debug/kdelibs-4.2.85/build/kio/kdirwatch.moc:83
#18 0xb7ebf232 in KDirWatch::setDirty (this=0x9bbc048, _file=@0xbfdc5d78) at /usr/src/debug/kdelibs-4.2.85/kio/kio/kdirwatch.cpp:1748
#19 0xb7ec05a4 in KDirWatchPrivate::emitEvent (this=0x9bb5a80, e=0x9fcb2f4, event=1, fileName=@0xbfdc5e30) at /usr/src/debug/kdelibs-4.2.85/kio/kio/kdirwatch.cpp:1227
#20 0xb7ec40fe in KDirWatchPrivate::slotRescan (this=0x9bb5a80) at /usr/src/debug/kdelibs-4.2.85/kio/kio/kdirwatch.cpp:1319
#21 0xb7ec5618 in KDirWatchPrivate::qt_metacall (this=0x9bb5a80, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbfdc5f08) at /usr/src/debug/kdelibs-4.2.85/build/kio/kdirwatch_p.moc:73
#22 0xb6874f45 in QMetaObject::activate (sender=0x9bb5ac8, from_signal_index=4, to_signal_index=4, argv=0x0) at kernel/qobject.cpp:3111
#23 0xb68767e5 in QMetaObject::activate (sender=0x9bb5ac8, m=0xb6955904, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3185
#24 0xb68b1e65 in QTimer::timeout (this=0x9bb5ac8) at .moc/release-shared/moc_qtimer.cpp:128
#25 0xb687ac66 in QTimer::timerEvent (this=0x9bb5ac8, e=0xbfdc635c) at kernel/qtimer.cpp:261
#26 0xb686f13b in QObject::event (this=0x9bb5ac8, e=0xbfdc635c) at kernel/qobject.cpp:1073
#27 0xb6a6822c in QApplicationPrivate::notify_helper (this=0x9ac36b0, receiver=0x9bb5ac8, e=0xbfdc635c) at kernel/qapplication.cpp:4057
#28 0xb6a709a6 in QApplication::notify (this=0xbfdc65dc, receiver=0x9bb5ac8, e=0xbfdc635c) at kernel/qapplication.cpp:3604
#29 0xb77d5f60 in KApplication::notify (this=0xbfdc65dc, receiver=0x9bb5ac8, event=0xbfdc635c) at /usr/src/debug/kdelibs-4.2.85/kdeui/kernel/kapplication.cpp:307
#30 0xb685e3ee in QCoreApplication::notifyInternal (this=0xbfdc65dc, receiver=0x9bb5ac8, event=0xbfdc635c) at kernel/qcoreapplication.cpp:610
#31 0xb688ea8d in QTimerInfoList::activateTimers (this=0x9abac34) at ../../src/corelib/kernel/qcoreapplication.h:213
#32 0xb688b36e in timerSourceDispatch (source=0x9abac00) at kernel/qeventdispatcher_glib.cpp:164
#33 0xb5df054a in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#34 0xb5df3bb4 in ?? () from /usr/lib/libglib-2.0.so.0
#35 0xb5df3d3f in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#36 0xb688b2ca in QEventDispatcherGlib::processEvents (this=0x9ab7b10, flags={i = -1076075320}) at kernel/qeventdispatcher_glib.cpp:324
#37 0xb6b0cdda in QGuiEventDispatcherGlib::processEvents (this=0x9ab7b10, flags={i = -1076075272}) at kernel/qguieventdispatcher_glib.cpp:202
#38 0xb685c9b3 in QEventLoop::processEvents (this=0xbfdc6570, flags={i = -1076075208}) at kernel/qeventloop.cpp:149
#39 0xb685ce01 in QEventLoop::exec (this=0xbfdc6570, flags={i = -1076075144}) at kernel/qeventloop.cpp:200
#40 0xb685f366 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#41 0xb6a68094 in QApplication::exec () at kernel/qapplication.cpp:3526
#42 0x08076c83 in main (argc=-1076074604, argv=0xbfdc65f4) at /usr/src/debug/kdebase-4.2.85/apps/dolphin/src/main.cpp:94
Comment 1 Dario Andres 2009-05-20 15:48:50 UTC
Hah, good assert. Adding David Faure to the CC. Thanks
Comment 2 David Faure 2009-05-21 00:03:32 UTC
Yep, precise assert, but I need to be able to reproduce the crash.
Toggling hidden files in $HOME works here (trunk 21/05/2009)
Comment 3 Dhiraj Kumar Hazra 2009-05-21 01:11:59 UTC
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
Comment 4 Dhiraj Kumar Hazra 2009-05-28 07:58:58 UTC
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
Comment 5 Dario Andres 2009-06-30 16:35:07 UTC
Bug 198350 seems to be related ~same~ backtrace but with a different situation. Thanks
Comment 6 Dario Andres 2009-07-07 00:20:04 UTC
*** Bug 199215 has been marked as a duplicate of this bug. ***
Comment 7 Dario Andres 2009-07-14 14:56:26 UTC
*** Bug 200147 has been marked as a duplicate of this bug. ***
Comment 8 Dario Andres 2009-07-19 22:15:37 UTC
*** Bug 200763 has been marked as a duplicate of this bug. ***
Comment 9 Dario Andres 2009-07-24 18:32:42 UTC
*** Bug 199187 has been marked as a duplicate of this bug. ***
Comment 10 Dario Andres 2009-08-12 20:18:05 UTC
*** Bug 200407 has been marked as a duplicate of this bug. ***
Comment 11 Dario Andres 2009-08-13 00:25:23 UTC
*** Bug 198350 has been marked as a duplicate of this bug. ***
Comment 12 Dario Andres 2009-08-18 15:20:02 UTC
*** Bug 204274 has been marked as a duplicate of this bug. ***
Comment 13 Dario Andres 2009-08-21 14:42:49 UTC
*** Bug 204541 has been marked as a duplicate of this bug. ***
Comment 14 Dario Andres 2009-08-28 00:34:07 UTC
*** Bug 205410 has been marked as a duplicate of this bug. ***
Comment 15 Fif59 2009-08-28 18:26:37 UTC
(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 ()
Comment 16 Frank Reininghaus 2009-09-05 11:50:29 UTC
*** Bug 206174 has been marked as a duplicate of this bug. ***
Comment 17 Michał Małek 2009-09-19 18:05:07 UTC
*** Bug 207644 has been marked as a duplicate of this bug. ***
Comment 18 Dario Andres 2009-10-01 00:33:06 UTC
Bug 207252 has another testcase, while burning a ISO image with K3b.
Comment 19 Dario Andres 2009-10-01 00:33:17 UTC
*** Bug 207252 has been marked as a duplicate of this bug. ***
Comment 20 Dario Andres 2009-10-15 14:42:40 UTC
*** Bug 210642 has been marked as a duplicate of this bug. ***
Comment 21 Dario Andres 2009-11-06 16:32:04 UTC
*** Bug 213425 has been marked as a duplicate of this bug. ***
Comment 22 Dario Andres 2009-11-23 22:51:17 UTC
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.
Comment 23 Dario Andres 2009-11-23 22:51:21 UTC
*** Bug 215817 has been marked as a duplicate of this bug. ***
Comment 24 Peter Penz 2009-12-18 15:39:35 UTC
*** Bug 199499 has been marked as a duplicate of this bug. ***
Comment 25 Dario Andres 2010-01-29 17:49:16 UTC
It seems that the reporter of bug 224793 can reproduce the crash with K3b
Comment 26 Dario Andres 2010-01-29 17:49:19 UTC
*** Bug 224793 has been marked as a duplicate of this bug. ***
Comment 27 Nicolas L. 2010-03-11 15:21:05 UTC
*** Bug 230173 has been marked as a duplicate of this bug. ***
Comment 28 Frank Reininghaus 2010-03-23 12:10:36 UTC
*** Bug 231784 has been marked as a duplicate of this bug. ***
Comment 29 Jaime Torres 2010-09-05 12:23:41 UTC
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
Comment 30 Jaime Torres 2010-09-05 12:37:55 UTC
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!
Comment 31 Jaime Torres 2010-09-12 13:19:00 UTC
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) {"
Comment 32 Jaime Torres 2010-09-15 21:20:14 UTC
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.
Comment 33 Jaime Torres 2010-10-06 13:05:45 UTC
I have a patch (that works for me) in the reviewboard
http://svn.reviewboard.kde.org/r/5447/
Comment 34 David Faure 2010-10-08 21:30:25 UTC
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