Summary: | Dolphin crashes browsing on some (not real files) kioslaves when Folders panel is enabled (ASSERT "result" in kdirmodel.cpp:377) | ||
---|---|---|---|
Product: | [Unmaintained] kio | Reporter: | Dario Andres <andresbajotierra> |
Component: | general | Assignee: | David Faure <faure> |
Status: | RESOLVED WAITINGFORINFO | ||
Severity: | crash | CC: | adawit, cfeck, finex, lindsay.mathieson, peter.penz19 |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Fix crash cause
fix + nano speedup |
Description
Dario Andres
2008-12-22 01:07:38 UTC
*** Bug 177539 has been marked as a duplicate of this bug. *** *** Bug 161218 has been marked as a duplicate of this bug. *** I forgot something important: As I stated in bug 177539 , to reproduce the crash in the trash:/ kioslave you need to have a folder inside the Trash Can, so I suppose this only happens when having folders (or "fake-folders" like in applications:/) inside the kioslave URL. Ooops indeed, F7, applications:/, F7, crash. Due to applications: vs applications:/, says KDirModel. SVN commit 901012 by dfaure: Open the sidebar on applications:/, not on applications:, that URL makes no sense [and crashes kdirmodel...]. BUG: 178416 M +3 -3 treeviewsidebarpage.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=901012 Just reproduced on trunk r903258 trying to open remote://IP_ADDRESS. (I've the places panel opened) Maybe this bug is related: bug #164149 This is the backtrace: Application: Dolphin (dolphin), signal SIGABRT 0x00007f2a41b54001 in nanosleep () from /lib/libc.so.6 [Current thread is 0 (LWP 29929)] Thread 2 (Thread 0x7f2a36fa7950 (LWP 30016)): #0 0x00007f2a41b7dd02 in select () from /lib/libc.so.6 #1 0x00007f2a428dcee6 in ?? () from /usr/lib/libQtCore.so.4 #2 0x00007f2a42826d79 in ?? () from /usr/lib/libQtCore.so.4 #3 0x00007f2a425b5fc7 in start_thread () from /lib/libpthread.so.0 #4 0x00007f2a41b845dd in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f2a45ef7750 (LWP 29929)): [KCrash Handler] #5 0x00007f2a41ae70c5 in raise () from /lib/libc.so.6 #6 0x00007f2a41ae85e3 in abort () from /lib/libc.so.6 #7 0x00007f2a428200a5 in qt_message_output () from /usr/lib/libQtCore.so.4 #8 0x00007f2a428201c7 in qFatal () from /usr/lib/libQtCore.so.4 #9 0x00007f2a45a7259b in KDirModelPrivate::_k_slotNewItems (this=0x1fe91b0, directoryUrl=<value optimized out>, items=@0x20212b0) at /home/test/KDE4/src/kdelibs/kio/kio/kdirmodel.cpp:379 #10 0x00007f2a45a7268a in KDirModel::qt_metacall (this=0x21e8ec0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff4e034960) at /home/test/KDE4/src/build/kdelibs/kio/kdirmodel.moc:77 #11 0x00007f2a42909d00 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #12 0x00007f2a45a5367a in KDirLister::itemsAdded (this=0x74e9, _t1=<value optimized out>, _t2=<value optimized out>) at /home/test/KDE4/src/build/kdelibs/kio/kdirlister.moc:266 #13 0x00007f2a45a5452b in KDirLister::Private::emitItems (this=0x21e8d40) at /home/test/KDE4/src/kdelibs/kio/kio/kdirlister.cpp:2239 #14 0x00007f2a45a5735e in KDirListerCache::slotEntries (this=0x1d3a2f0, job=<value optimized out>, entries=@0x225fa28) at /home/test/KDE4/src/kdelibs/kio/kio/kdirlister.cpp:1048 #15 0x00007f2a45a666fb in KDirListerCache::qt_metacall (this=0x1d3a2f0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff4e034ce0) at /home/test/KDE4/src/build/kdelibs/kio/kdirlister_p.moc:97 #16 0x00007f2a42909d00 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #17 0x00007f2a45a2d5f4 in KIO::ListJob::entries (this=0x74e9, _t1=0x21cfde0, _t2=<value optimized out>) at /home/test/KDE4/src/build/kdelibs/kio/jobclasses.moc:763 #18 0x00007f2a45a3acb6 in KIO::ListJobPrivate::slotListEntries (this=0x1f8cd70, list=@0x7fff4e035270) at /home/test/KDE4/src/kdelibs/kio/kio/job.cpp:2341 #19 0x00007f2a45a3ae26 in KIO::ListJob::qt_metacall (this=0x21cfde0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff4e035050) at /home/test/KDE4/src/build/kdelibs/kio/jobclasses.moc:750 #20 0x00007f2a42909d00 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #21 0x00007f2a45af5385 in KIO::SlaveInterface::listEntries (this=0x74e9, _t1=<value optimized out>) at /home/test/KDE4/src/build/kdelibs/kio/slaveinterface.moc:177 #22 0x00007f2a45af8bdf in KIO::SlaveInterface::dispatch (this=0x1ef54b0, _cmd=<value optimized out>, rawdata=@0x4) at /home/test/KDE4/src/kdelibs/kio/kio/slaveinterface.cpp:193 #23 0x00007f2a45af5758 in KIO::SlaveInterface::dispatch (this=0x1ef54b0) at /home/test/KDE4/src/kdelibs/kio/kio/slaveinterface.cpp:91 #24 0x00007f2a45ae7923 in KIO::Slave::gotInput (this=0x1ef54b0) at /home/test/KDE4/src/kdelibs/kio/kio/slave.cpp:322 #25 0x00007f2a45ae8958 in KIO::Slave::qt_metacall (this=0x1ef54b0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff4e035440) at /home/test/KDE4/src/build/kdelibs/kio/slave.moc:75 #26 0x00007f2a42909d00 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #27 0x00007f2a45a015c0 in KIO::ConnectionPrivate::dequeue (this=0x2105100) at /home/test/KDE4/src/kdelibs/kio/kio/connection.cpp:82 #28 0x00007f2a45a016fa in KIO::Connection::qt_metacall (this=0x20a04e0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x20b5170) at /home/test/KDE4/src/build/kdelibs/kio/connection.moc:72 #29 0x00007f2a42905f9e in QObject::event () from /usr/lib/libQtCore.so.4 #30 0x00007f2a42d564dd in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4 #31 0x00007f2a42d5c86a in QApplication::notify () from /usr/lib/libQtGui.so.4 #32 0x00007f2a4413750b in KApplication::notify (this=0x7fff4e035e80, receiver=0x20a04e0, event=0x21f9880) at /home/test/KDE4/src/kdelibs/kdeui/kernel/kapplication.cpp:307 #33 0x00007f2a428f83d1 in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4 #34 0x00007f2a428f8db8 in QCoreApplicationPrivate::sendPostedEvents () from /usr/lib/libQtCore.so.4 #35 0x00007f2a4291cc03 in ?? () from /usr/lib/libQtCore.so.4 #36 0x00007f2a3e915aa2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #37 0x00007f2a3e91921d in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #38 0x00007f2a3e9193db in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #39 0x00007f2a4291c89f in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4 #40 0x00007f2a42dd6fff in ?? () from /usr/lib/libQtGui.so.4 #41 0x00007f2a428f6d42 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4 #42 0x00007f2a428f6ed5 in QEventLoop::exec () from /usr/lib/libQtCore.so.4 #43 0x00007f2a428f9025 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4 #44 0x000000000044380d in main (argc=6, argv=0x7fff4e036368) at /home/test/KDE4/src/kdebase/apps/dolphin/src/main.cpp:94 *** Bug 178944 has been marked as a duplicate of this bug. *** Here using: Qt: 4.4.3 + qt-copy-patches-889120 KDE: 4.1.87 (KDE 4.1.87 (KDE 4.2 >= 20090101)) kdelibs svn rev. 905636 / kdebase svn rev. 905636 on ArchLinux x86_64 - Kernel 2.6.27.10 I can still reproduce the crash when going to "remote://192.168.1.2" (it seems that it doesn't matter if the Folders panel is enabled or not) The same assert is hitted #8 0x00007fb8b7cc2b47 in qFatal (msg=<value optimized out>) at global/qglobal.cpp:2303 #9 0x00007fb8bafec5fb in KDirModelPrivate::_k_slotNewItems (this=0xfad670, directoryUrl=<value optimized out>, items=@0x111c600) at /home/kde-devel/kde/src/KDE/kdelibs/kio/kio/kdirmodel.cpp:379 ---- I don't know if the reasons are the same as the original bug, and if this new crash must be posted in a new report. Actually it's more like bug 160057 (a hostname that the kioslave ignores), but you had no way to know that :-) I'll try to fix it. SVN commit 910246 by dfaure: Backport r910243: Fix kdirmodel assert on remote://hostname (where the hostname is ignored by kio_remote, as expected) the initial logic for "no path means '/'" isn't needed after all, sftp://host works without it. BUG: 178416 M +0 -9 kio/kdirmodel.cpp M +15 -1 tests/kdirmodeltest.cpp M +2 -1 tests/kdirmodeltest.h WebSVN link: http://websvn.kde.org/?view=rev&revision=910246 Created attachment 30526 [details]
Fix crash cause
David the patch you applied fixes the symptom for this case, but an Open-file dialog did still crash on f.e. fish://foo .. but fix turned out to be amazingly simpel ;)
Created attachment 30528 [details]
fix + nano speedup
seeing as how nodeForUrl is propably called *a lot* for huge directory listings, this patch saves a call to cleanupUrl or two.. not sure if there are any circumstances under which dropping an url lexically different from the rootnode url but identifying same location could end up here.. ? Seems to work fine though.
David, the patch from comment #12 to fix the issue mentioned in comment #11 has not been applied. Can you review it? Marcel: how do you make the file dialog crash? I can't reproduce it. About the patch, maybe urlForNode should use cleanupUrl too... Was the patch in comment #12 ignored on purpose ? It is not in the current trunk version and I guess there must be some issue for it to be ignored. If that is the case, can this bug report get closed as FIXED ? |