Bug 175035 - crash while adding folders [assert: lister->d->m_cachedItemsJob == 0]
Summary: crash while adding folders [assert: lister->d->m_cachedItemsJob == 0]
Status: RESOLVED FIXED
Alias: None
Product: juk
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Michael Pyne
URL:
Keywords:
: 193800 194182 242888 247058 265933 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-11-13 12:49 UTC by Alex
Modified: 2013-07-07 04:23 UTC (History)
10 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Port from KDirLister to KDirWatch (8.67 KB, patch)
2009-03-17 03:53 UTC, Michael Pyne
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alex 2008-11-13 12:49:43 UTC
Version:           4:4.1.2-ubuntu1 (using KDE 4.1.2)
OS:                Linux
Installed from:    Ubuntu Packages

Juk crashes when i attempt to add folders.
I try to add folders from both internal hard drives and a USB hard drive at once.

Application: JuK (juk), signal SIGABRT
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb58b8ae0 (LWP 7534)]
[New Thread 0xb1c29b90 (LWP 7539)]
[New Thread 0xb242ab90 (LWP 7538)]
[New Thread 0xb2c2bb90 (LWP 7537)]
[New Thread 0xb3490b90 (LWP 7535)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#6  0xb807e430 in __kernel_vsyscall ()
#7  0xb6540880 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0xb6542248 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0xb71d7795 in qt_message_output () from /usr/lib/libQtCore.so.4
#10 0xb71d7872 in qFatal () from /usr/lib/libQtCore.so.4
#11 0xb71d7915 in qt_assert () from /usr/lib/libQtCore.so.4
#12 0xb7a291f8 in KDirLister::Private::CachedItemsJob::done ()
   from /usr/lib/libkio.so.5
#13 0xb7a29395 in KDirLister::Private::CachedItemsJob::qt_metacall ()
   from /usr/lib/libkio.so.5
#14 0xb72ddbfb in QMetaCallEvent::placeMetaCall ()
   from /usr/lib/libQtCore.so.4
#15 0xb72df771 in QObject::event () from /usr/lib/libQtCore.so.4
#16 0xb68d28ec in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#17 0xb68da76e in QApplication::notify () from /usr/lib/libQtGui.so.4
#18 0xb779e72d in KApplication::notify () from /usr/lib/libkdeui.so.5
#19 0xb72cfe61 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#20 0xb72d0ae5 in QCoreApplicationPrivate::sendPostedEvents ()
   from /usr/lib/libQtCore.so.4
#21 0xb72d0cdd in QCoreApplication::sendPostedEvents ()
   from /usr/lib/libQtCore.so.4
#22 0xb72fa82f in ?? () from /usr/lib/libQtCore.so.4
#23 0xb60596f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#24 0xb605cda3 in ?? () from /usr/lib/libglib-2.0.so.0
#25 0xb605cf61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#26 0xb72fa478 in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#27 0xb696cee5 in ?? () from /usr/lib/libQtGui.so.4
#28 0xb72d0f36 in QCoreApplication::processEvents ()
   from /usr/lib/libQtCore.so.4
#29 0x080c4855 in ?? ()
#30 0x080cdd0d in ?? ()
#31 0x080ce52f in ?? ()
#32 0x080e7406 in ?? ()
#33 0x080e01f1 in ?? ()
#34 0x080e8098 in ?? ()
#35 0xb72e4a60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#36 0xb72e4e60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#37 0xb68cc5f1 in QAction::triggered () from /usr/lib/libQtGui.so.4
#38 0xb68ccf5f in QAction::activate () from /usr/lib/libQtGui.so.4
#39 0xb6caa4e4 in ?? () from /usr/lib/libQtGui.so.4
#40 0xb6caaf72 in QMenu::mouseReleaseEvent () from /usr/lib/libQtGui.so.4
#41 0xb78732c5 in KMenu::mouseReleaseEvent () from /usr/lib/libkdeui.so.5
#42 0xb692a9a2 in QWidget::event () from /usr/lib/libQtGui.so.4
#43 0xb6cad269 in QMenu::event () from /usr/lib/libQtGui.so.4
#44 0xb68d28ec in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#45 0xb68db121 in QApplication::notify () from /usr/lib/libQtGui.so.4
#46 0xb779e72d in KApplication::notify () from /usr/lib/libkdeui.so.5
#47 0xb72cfe61 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#48 0xb68da3ae in QApplicationPrivate::sendMouseEvent ()
   from /usr/lib/libQtGui.so.4
#49 0xb694491e in ?? () from /usr/lib/libQtGui.so.4
#50 0xb6943a25 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#51 0xb696d7ea in ?? () from /usr/lib/libQtGui.so.4
#52 0xb60596f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#53 0xb605cda3 in ?? () from /usr/lib/libglib-2.0.so.0
#54 0xb605cf61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#55 0xb72fa478 in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#56 0xb696cee5 in ?? () from /usr/lib/libQtGui.so.4
#57 0xb72ce52a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#58 0xb72ce6ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#59 0xb72d0da5 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#60 0xb68d2767 in QApplication::exec () from /usr/lib/libQtGui.so.4
#61 0x080b8fb9 in ?? ()
#62 0xb652b685 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#63 0x0806bb01 in _start ()
#0  0xb807e430 in __kernel_vsyscall ()
Comment 1 FiNeX 2008-11-13 13:03:12 UTC
Hi! Can you reproduce the crash each time? If you have some free time, please read this page for the instructions about posting an useful backtrace:
http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports

Thanks!
Comment 2 Alex 2008-11-13 15:31:27 UTC
Thanks for the interest..I've read the page and installed kdelibs-dbg and libqt4dbg.

Basically to reproduce the crash i open file menu, choose "Add folder..." from there i choose "add folder" to choose the add the first folder. After i've added several folders i click OK and the program crashes..
Problem is this doesn't happen every time, mostly if i add many folders (3+)
If this helps the folders are ~/Music, /media/MY PASSPORT/music and several /media/MY PASSPORT/music xxxx. Maybe there's some problem with the blank or whatever..don't know

Application: JuK (juk), signal SIGABRT
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb589cae0 (LWP 8188)]
[New Thread 0xb1c0db90 (LWP 8193)]
[New Thread 0xb240eb90 (LWP 8192)]
[New Thread 0xb2c0fb90 (LWP 8191)]
[New Thread 0xb3474b90 (LWP 8189)]
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#6  0xb8062430 in __kernel_vsyscall ()
#7  0xb6524880 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0xb6526248 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0xb71bb795 in qt_message_output () from /usr/lib/libQtCore.so.4
#10 0xb71bb872 in qFatal () from /usr/lib/libQtCore.so.4
#11 0xb71bb915 in qt_assert () from /usr/lib/libQtCore.so.4
#12 0xb7a0d1f8 in KDirLister::Private::CachedItemsJob::done ()
   from /usr/lib/libkio.so.5
#13 0xb7a0d395 in KDirLister::Private::CachedItemsJob::qt_metacall ()
   from /usr/lib/libkio.so.5
#14 0xb72c1bfb in QMetaCallEvent::placeMetaCall ()
   from /usr/lib/libQtCore.so.4
#15 0xb72c3771 in QObject::event () from /usr/lib/libQtCore.so.4
#16 0xb68b68ec in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#17 0xb68be76e in QApplication::notify () from /usr/lib/libQtGui.so.4
#18 0xb778272d in KApplication::notify () from /usr/lib/libkdeui.so.5
#19 0xb72b3e61 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#20 0xb72b4ae5 in QCoreApplicationPrivate::sendPostedEvents ()
   from /usr/lib/libQtCore.so.4
#21 0xb72b4cdd in QCoreApplication::sendPostedEvents ()
   from /usr/lib/libQtCore.so.4
#22 0xb72de82f in ?? () from /usr/lib/libQtCore.so.4
#23 0xb603d6f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#24 0xb6040da3 in ?? () from /usr/lib/libglib-2.0.so.0
#25 0xb6040f61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#26 0xb72de478 in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#27 0xb6950ee5 in ?? () from /usr/lib/libQtGui.so.4
#28 0xb72b4f36 in QCoreApplication::processEvents ()
   from /usr/lib/libQtCore.so.4
#29 0x080c4855 in ?? ()
#30 0x080cdd0d in ?? ()
#31 0x080ce52f in ?? ()
#32 0x080e7406 in ?? ()
#33 0x080e01f1 in ?? ()
#34 0x080e8098 in ?? ()
#35 0xb72c8a60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#36 0xb72c8e60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#37 0xb68b05f1 in QAction::triggered () from /usr/lib/libQtGui.so.4
#38 0xb68b0f5f in QAction::activate () from /usr/lib/libQtGui.so.4
#39 0xb6c8e4e4 in ?? () from /usr/lib/libQtGui.so.4
#40 0xb6c8ef72 in QMenu::mouseReleaseEvent () from /usr/lib/libQtGui.so.4
#41 0xb78572c5 in KMenu::mouseReleaseEvent () from /usr/lib/libkdeui.so.5
#42 0xb690e9a2 in QWidget::event () from /usr/lib/libQtGui.so.4
#43 0xb6c91269 in QMenu::event () from /usr/lib/libQtGui.so.4
#44 0xb68b68ec in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#45 0xb68bf121 in QApplication::notify () from /usr/lib/libQtGui.so.4
#46 0xb778272d in KApplication::notify () from /usr/lib/libkdeui.so.5
#47 0xb72b3e61 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#48 0xb68be3ae in QApplicationPrivate::sendMouseEvent ()
   from /usr/lib/libQtGui.so.4
#49 0xb692891e in ?? () from /usr/lib/libQtGui.so.4
#50 0xb6927a25 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#51 0xb69517ea in ?? () from /usr/lib/libQtGui.so.4
#52 0xb603d6f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#53 0xb6040da3 in ?? () from /usr/lib/libglib-2.0.so.0
#54 0xb6040f61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#55 0xb72de478 in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#56 0xb6950ee5 in ?? () from /usr/lib/libQtGui.so.4
#57 0xb72b4f36 in QCoreApplication::processEvents ()
   from /usr/lib/libQtCore.so.4
#58 0x080c4855 in ?? ()
#59 0x080cdd0d in ?? ()
#60 0x080cdf6f in ?? ()
#61 0x080cdf6f in ?? ()
#62 0x080cdf6f in ?? ()
#63 0x080ce52f in ?? ()
#64 0x080e7406 in ?? ()
#65 0x080e01f1 in ?? ()
#66 0x080e8098 in ?? ()
#67 0xb72c8a60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#68 0xb72c8e60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#69 0xb68b05f1 in QAction::triggered () from /usr/lib/libQtGui.so.4
#70 0xb68b0f5f in QAction::activate () from /usr/lib/libQtGui.so.4
#71 0xb6c8e4e4 in ?? () from /usr/lib/libQtGui.so.4
#72 0xb6c8ef72 in QMenu::mouseReleaseEvent () from /usr/lib/libQtGui.so.4
#73 0xb78572c5 in KMenu::mouseReleaseEvent () from /usr/lib/libkdeui.so.5
#74 0xb690e9a2 in QWidget::event () from /usr/lib/libQtGui.so.4
#75 0xb6c91269 in QMenu::event () from /usr/lib/libQtGui.so.4
#76 0xb68b68ec in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#77 0xb68bf121 in QApplication::notify () from /usr/lib/libQtGui.so.4
#78 0xb778272d in KApplication::notify () from /usr/lib/libkdeui.so.5
#79 0xb72b3e61 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#80 0xb68be3ae in QApplicationPrivate::sendMouseEvent ()
   from /usr/lib/libQtGui.so.4
#81 0xb692891e in ?? () from /usr/lib/libQtGui.so.4
#82 0xb6927a25 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#83 0xb69517ea in ?? () from /usr/lib/libQtGui.so.4
#84 0xb603d6f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#85 0xb6040da3 in ?? () from /usr/lib/libglib-2.0.so.0
#86 0xb6040f61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#87 0xb72de478 in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#88 0xb6950ee5 in ?? () from /usr/lib/libQtGui.so.4
#89 0xb72b252a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#90 0xb72b26ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#91 0xb72b4da5 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#92 0xb68b6767 in QApplication::exec () from /usr/lib/libQtGui.so.4
#93 0x080b8fb9 in ?? ()
#94 0xb650f685 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#95 0x0806bb01 in _start ()
#0  0xb8062430 in __kernel_vsyscall ()

Anyway if there is any other debugging package that i have to install please tell me. (They're huge actually)
Comment 3 Jason L 2009-01-28 10:12:46 UTC
I think something similar happened to me the first time I launched Juk on KDE 4.2. I can reproduce it by adding 2+ folders (must be more than one at a time) and hitting "OK".

Here's the assert message:
ASSERT: "lister->d->m_cachedItemsJob == 0" in file /var/tmp/portage/kde-base/kdelibs-4.2.0/work/kdelibs-4.2.0/kio/kio/kdirlister_p.h, line 454

The top of the stack trace looks like this:

#5  0x00007f2ccdb533c5 in raise () from /lib/libc.so.6                          
#6  0x00007f2ccdb5473e in abort () from /lib/libc.so.6                          
#7  0x00007f2ccf8de385 in qt_message_output (msgType=QtFatalMsg, buf=<value optimized out>) at global/qglobal.cpp:2108                                                                                          
#8  0x00007f2ccf8de4b7 in qFatal (msg=<value optimized out>) at global/qglobal.cpp:2309                 
#9  0x00007f2cd0cef66b in CachedItemsJob (this=0x1aa9ef0, lister=0x1bf1a38, items=@0x1f10360, rootItem=@0x1f10358, url=@0x7fffdac67900, reload=false)                                                           
    at /var/tmp/portage/kde-base/kdelibs-4.2.0/work/kdelibs-4.2.0/kio/kio/kdirlister_p.h:454
#10 0x00007f2cd0ce4522 in KDirListerCache::listDir (this=0x1bd69c0, lister=0x1bf1a38, _u=<value optimized out>, _keep=<value optimized out>, _reload=false)
    at /var/tmp/portage/kde-base/kdelibs-4.2.0/work/kdelibs-4.2.0/kio/kio/kdirlister.cpp:243
#11 0x00007f2cd0ce5b63 in KDirLister::openUrl (this=0x1bf1a38, _url=@0x7fffdac67c60, _flags=@0x7fffdac67ce0) at /var/tmp/portage/kde-base/kdelibs-4.2.0/work/kdelibs-4.2.0/kio/kio/kdirlister.cpp:1825
#12 0x000000000048a683 in PlaylistCollection::addFolder (this=0x1bf1a08) at /var/tmp/portage/kde-base/juk-4.2.0/work/juk-4.2.0/juk/playlistcollection.cpp:371
#13 0x000000000048b7ad in PlaylistCollection::ActionHandler::qt_metacall (this=0x1bca140, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffdac67de0)
Comment 4 Michael Pyne 2009-01-28 23:19:50 UTC
To be honest I think this is a KDirLister bug.  It is trying to create one CachedJob for each directory added but it seems to only want one CachedJob total.  I'm not sure why it's not reusing the first one, I'll look into it more.
Comment 5 Michael Pyne 2009-01-29 01:16:17 UTC
Jason L:  I am unable to reproduce the crash.  If you are able to reproduce can you please also include the console output with debug information turned on for KDirLister and KDirListerCache (7003 and 7004).  You should use kdebugdialog to ensure those debug areas are turned on.

You will probably need kdelibs compiled with debuggin information enabled as well.  This will help to determine if it is a KDirLister bug or JuK using KDirLister improperly.
Comment 6 Michael Pyne 2009-01-29 01:49:39 UTC
SVN commit 918037 by mpyne:

Remove the now playing bar and the search widget on shutdown before deleting the playlist collection.

I think this is the cause of bug 175035 and since I can't reproduce I'm just going to assume it works. ;)

CCBUG:175035


 M  +10 -3     playlistsplitter.cpp  
 M  +2 -0      playlistsplitter.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=918037
Comment 7 Michael Pyne 2009-01-29 02:03:39 UTC
SVN commit 918041 by mpyne:

Backport fix for bug 175035 (crash on JuK shutdown) to KDE 4.2.1.

BUG:175035


 M  +10 -3     playlistsplitter.cpp  
 M  +2 -0      playlistsplitter.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=918041
Comment 8 Michael Pyne 2009-01-29 02:16:57 UTC
Hmm, got too quick on the BUG keyword in svn, this bug is still UNCONFIRMED.
Comment 9 Jason L 2009-01-29 05:02:00 UTC
I don't think this is the same as "crash on Juk shutdown" since it happens in the "File -> Add folders" dialog. This is on KDE 4.2.0, and it's 100% reproducible for me.

Here's the log:

juk(2508) PlaylistCollection::addFolder:
juk(2508)/kdecore (KLibLoader) findLibraryInternal: plugins should not have a 'lib' prefix: "libkfilemodule.so"                                                                 
juk(2508)/kdecore (KLibLoader) KPluginLoader::load: The plugin "libkfilemodule" doesn't contain a kde_plugin_verification_data structure                                        
juk(2508)/kio (bookmarks) KBookmarkManager::KBookmarkManager: starting KDirWatch for  "/home/jason/.local/share//user-places.xbel"                                              
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("trash:/")                                                                                    
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///")                                                                                   
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: Killing update job for  "file:///"                                                                                 
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///")                                                                                   
juk(2508)/kio (KIOJob) KDirModel::indexForUrl: KUrl("file:///home/jason") not found     
juk(2508)/kio (KDirModel) KDirModel::expandToUrl: Remembering to emit expand after listing the root url                                                                         
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Entry currently being listed: KUrl("trash:/") by (KDirLister(0x25adc30) )                                             
juk(2508)/kio (Slave) KIO::Slave::createSlave: createSlave "trash" for KUrl("trash:/")  
juk(2508)/kio (KIOConnection) KIO::ConnectionServer::listenForRemote: Listening on  "local:/tmp/ksocket-jason/jukcl2508.slave-socket"                                           
juk(2508)/kio (KDirModel) KDirModelPrivate::_k_slotNewItems: Listing found KUrl("file:///home") which is a parent of fetched url KUrl("file:///home/jason")                     
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///home")                                                                               
juk(2508)/kio KNFSShare::KNFSSharePrivate::findExportsFile: Could not find exports file! /etc/exports doesn't exist. Configure it in share/config/knfsshare, [General], exportsFile=....                                                                                
juk(2508)/kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///")                                                                                  
juk(2508)/kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("trash:/")                                                                                   
juk(2508)/kio (KDirModel) KDirModelPrivate::_k_slotNewItems: Listing found KUrl("file:///home/jason") which is a parent of fetched url KUrl("file:///home/jason")               
juk(2508)/kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///home")                                                                              
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///home/jason")                                                                         
juk(2508)/kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///home/jason")                                                                        
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///home/jason/test")                                                                    
juk(2508)/kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///home/jason/test")                                                                   
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///home/jason/test/a")                                                                  
juk(2508)/kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///home/jason/test/a")                                                                 
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25adc30)  item moved into cache:  KUrl("trash:/")                                                     
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25bfa20)  item moved into cache:  KUrl("file:///")                                                    
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: Not adding a watch on  KUrl("file:///")  because it  contains a manually mounted subdir                            
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25bfa20)  item moved into cache:  KUrl("file:///home")                                                
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25bfa20)  item moved into cache:  KUrl("file:///home/jason")                                          
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25bfa20)  item moved into cache:  KUrl("file:///home/jason/test")                                     
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25bfa20)  item moved into cache:  KUrl("file:///home/jason/test/a")                                   
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Entry in cache: KUrl("trash:/")                                                                                       
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Entry in cache: KUrl("file:///")                                                                                      
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///")                                                                                   
juk(2508)/kio (KIOJob) KDirModel::indexForUrl: KUrl("file:///home/jason/test/a") not found                                                                                      
juk(2508)/kio (KDirModel) KDirModel::expandToUrl: Remembering to emit expand after listing the root url                                                                         
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Entry already in use: KUrl("trash:/")                                                                                 
juk(2508)/kio (KDirModel) KDirModelPrivate::_k_slotNewItems: Listing found KUrl("file:///home") which is a parent of fetched url KUrl("file:///home/jason/test/a")              
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Entry in cache: KUrl("file:///home")                                                                                  
juk(2508)/kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///")                                                                                  
juk(2508)/kio (KDirModel) KDirModelPrivate::_k_slotNewItems: Listing found KUrl("file:///home/jason") which is a parent of fetched url KUrl("file:///home/jason/test/a")        
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Entry in cache: KUrl("file:///home/jason")                                                                            
juk(2508)/kio (KDirModel) KDirModelPrivate::_k_slotNewItems: Listing found KUrl("file:///home/jason/test") which is a parent of fetched url KUrl("file:///home/jason/test/a")   
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Entry in cache: KUrl("file:///home/jason/test")
juk(2508)/kio (KDirModel) KDirModelPrivate::_k_slotNewItems: Listing found KUrl("file:///home/jason/test/a") which is a parent of fetched url KUrl("file:///home/jason/test/a")
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("file:///home/jason/test/b")
juk(2508)/kio (KDirListerCache) KDirListerCache::slotResult: finished listing KUrl("file:///home/jason/test/b")
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x26819a0)  item moved into cache:  KUrl("trash:/")
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25b5720)  item moved into cache:  KUrl("file:///")
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: Not adding a watch on  KUrl("file:///")  because it  contains a manually mounted subdir
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25b5720)  item moved into cache:  KUrl("file:///home")
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25b5720)  item moved into cache:  KUrl("file:///home/jason")
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25b5720)  item moved into cache:  KUrl("file:///home/jason/test")
juk(2508)/kio (KDirListerCache) KDirListerCache::forgetDirs: KDirLister(0x25b5720)  item moved into cache:  KUrl("file:///home/jason/test/b")
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Entry in cache: KUrl("file:///home/jason/test/a")
juk(2508)/kio (KDirListerCache) KDirListerCache::listDir: Entry in cache: KUrl("file:///home/jason/test/b")
ASSERT: "lister->d->m_cachedItemsJob == 0" in file /var/tmp/portage/kde-base/kdelibs-4.2.0/work/kdelibs-4.2.0/kio/kio/kdirlister_p.h, line 454
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = juk path = <unknown> pid = 2508
Comment 10 Jason L 2009-01-29 05:10:12 UTC
Steps:
1. Create two folders, "a" and "b" (they don't have to be empty, I just wanted to make sure it wasn't a bad MP3 or something).
2. In Juk, go to "File" > "Add Folder..." which should bring up a "Select Folder - Juk" dialog.
3. Click "Add folder..." and browse to folder "a" and click OK.
4. Click "Add folder..." again and browse to folder "b" and click OK.
5. Click OK to close the "Select folder - Juk" dialog.

And it crashes at this point.
Comment 11 Michael Pyne 2009-03-17 03:53:51 UTC
Created attachment 32173 [details]
Port from KDirLister to KDirWatch

Well, if you want to try this patch to see if it gets rid of the crash then I can commit this if it works.  It basically just uses the slightly less powerful KDirWatch instead of KDirLister (ironically 4.5 years ago I ported from KDirWatch to KDirLister...).  It doesn't cause crashes here but then I had trouble reproducing consistently anyways.
Comment 12 David Faure 2009-03-17 14:49:44 UTC
Obviously I would prefer that the KDirLister bug is fixed.

But I can't reproduce the crash (with kdelibs trunk + juk trunk)
Comment 13 Michael Pyne 2009-03-18 04:48:57 UTC
I'm not able to reproduce right now either. :-/
Comment 14 Raphael Kubo da Costa 2009-05-19 06:19:24 UTC
I can always reproduce it with trunk (svn up'd some hours ago, 2009-05-19) with the instructions provided in comment 10. I haven't tested the patch yet, since I'd like this to be fixed with KDirLister ;)
Comment 15 Artem S. Tashkinov 2010-01-11 16:41:36 UTC
7 months and no comments from the OP, maybe it's time to close it? I cannot reproduce it either with KDE 4.4 RC1.
Comment 16 David Faure 2010-01-14 10:20:17 UTC
Raphael, can you still reproduce it?
Comment 17 Raphael Kubo da Costa 2010-01-15 02:27:05 UTC
Yes. If I follow the instructions in comment 10 (with my songs folder already added) I get the same crash with kdelibs r1073825.
Comment 18 Nick Shaforostoff 2011-02-10 04:33:41 UTC
*** Bug 194182 has been marked as a duplicate of this bug. ***
Comment 19 Nick Shaforostoff 2011-02-10 04:35:13 UTC
*** Bug 265933 has been marked as a duplicate of this bug. ***
Comment 20 Nick Shaforostoff 2011-02-10 04:36:35 UTC
*** Bug 242888 has been marked as a duplicate of this bug. ***
Comment 21 David Faure 2011-02-15 01:56:30 UTC
Git commit 4530a69919a97edd87228882fe72b2759ec4dc29 by David Faure.
Committed on 15/02/2011 at 01:44.
Pushed by dfaure into branch 'master'.

Fix ASSERT: "lister->d->m_cachedItemsJob == 0" when using KDirModel::expandTo(/a/b/c) and
/a and /a/b are in cache already; when the CachedItemsJob for /a emits its items,
KDirModel sees b and asks for listing /a/b, which creates another CachedItemsJob for /a/b.
So it's perfectly possible to have more than one cached items job in a dirlister, just
not for the same directory -> turned the job member into a list of jobs. With unittest.
FIXED-IN: 4.6.1
BUG: 175035

M  +44   -35   kio/kio/kdirlister.cpp     
M  +6    -4    kio/kio/kdirlister_p.h     
M  +14   -3    kio/tests/kdirmodeltest.cpp     

http://commits.kde.org/kdelibs/4530a69919a97edd87228882fe72b2759ec4dc29
Comment 22 David Faure 2011-02-15 02:10:16 UTC
Git commit d2869f70dafe0b45fade7b256ac267f492f62507 by David Faure.
Committed on 15/02/2011 at 01:44.
Pushed by dfaure into branch 'KDE/4.6'.

Fix ASSERT: "lister->d->m_cachedItemsJob == 0" when using KDirModel::expandTo(/a/b/c) and
/a and /a/b are in cache already; when the CachedItemsJob for /a emits its items,
KDirModel sees b and asks for listing /a/b, which creates another CachedItemsJob for /a/b.
So it's perfectly possible to have more than one cached items job in a dirlister, just
not for the same directory -> turned the job member into a list of jobs. With unittest.
FIXED-IN: 4.6.1
BUG: 175035
(cherry picked from commit 4530a69919a97edd87228882fe72b2759ec4dc29)

M  +44   -35   kio/kio/kdirlister.cpp     
M  +6    -4    kio/kio/kdirlister_p.h     
M  +14   -3    kio/tests/kdirmodeltest.cpp     

http://commits.kde.org/kdelibs/d2869f70dafe0b45fade7b256ac267f492f62507
Comment 23 David Faure 2011-02-15 02:17:56 UTC
*** Bug 247058 has been marked as a duplicate of this bug. ***
Comment 24 Dawit Alemayehu 2013-07-07 04:23:09 UTC
*** Bug 193800 has been marked as a duplicate of this bug. ***