crash in kio/kdirlister.cpp

Martin Koller m.koller at surfeu.at
Mon Nov 22 20:32:08 GMT 2004


Hi,

I have an easy reproduceable crash in konqi with following bt:

ASSERT: "!urlsCurrentlyHeld[jobUrlStr]" in kdirlister.cpp (947)
ASSERT: "!urlsCurrentlyHeld[jobUrlStr]" in kdirlister.cpp (947)
ASSERT: "item" in kdirlister.cpp (443)

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 16047)]
0x40419a50 in KDirListerCache::forgetDirs (this=0x876e3a8, lister=0x88e0ef0, 
_url=@0x876e3e4, notify=false)
    at kdirlister.cpp:475
475           if ( item->complete )

Shouldn't the Q_ASSERT already terminate the application ?

(gdb) bt
#0  0x40419a50 in KDirListerCache::forgetDirs (this=0x876e3a8, 
lister=0x88e0ef0, _url=@0x876e3e4, notify=false)
    at kdirlister.cpp:475
#1  0x40419422 in KDirListerCache::forgetDirs (this=0x876e3a8, 
lister=0x88e0ef0) at qvaluelist.h:110
#2  0x404180cf in KDirListerCache::listDir (this=0x876e3a8, lister=0x88e0ef0, 
_u=@0xbfffe8c0, _keep=false,
    _reload=true) at kdirlister.cpp:108
#3  0x404256c3 in KDirLister::openURL (this=0x88e0ef0, _url=@0xbfffe8c0, 
_keep=false, _reload=true)
    at kdirlister.cpp:1591
#4  0x420ca6e7 in KonqKfmIconView::doOpenURL (this=0x8902e10, url=@0xbfffe8c0) 
at konq_iconview.cc:1311
#5  0x401514f9 in KonqDirPart::openURL (this=0x8902e10, url=@0xbfffe8c0) at 
konq_dirpart.cc:637
#6  0x4006ce8f in KonqView::openURL (this=0x84c4dc8, url=@0xbfffe8c0, 
locationBarURL=@0xbfffe930,
    nameFilter=@0x8a3cdb8, tempFile=false) at konq_view.cc:214
#7  0x400a6c81 in KonqMainWindow::openView (this=0x82f90d8, serviceType={d = 
0x872a5e0}, _url=@0x8a3ccf8,
    childView=0x84c4dc8, req=@0x8a3cdb4) at konq_mainwindow.cc:879
#8  0x4006a241 in KonqRun::foundMimeType (this=0x8a3ccd0, _type=@0xbfffea50) 
at qguardedptr.h:113
#9  0x4040cde3 in KRun::slotTimeout (this=0x8a3ccd0) at krun.cpp:963
#10 0x4040f570 in KRun::qt_invoke (this=0x8a3ccd0, _id=2, _o=0xbfffebb0) at 
krun.moc:116
#11 0x401b4c99 in KParts::BrowserRun::qt_invoke (this=0x8a3ccd0, _id=2, 
_o=0xbfffebb0) at browserrun.moc:106
#12 0x4006b001 in KonqRun::qt_invoke (this=0x8a3ccd0, _id=2, _o=0xbfffebb0) at 
konq_run.moc:88
#13 0x40e3332d in QObject::activate_signal (this=0x8a3cd28, clist=0x8734b90, 
o=0xbfffebb0) at kernel/qobject.cpp:2357

<snip>

In gdb I see, that the "item" variable is 0x0 !

How to reproduce:
start konqi, Press F9 to get the navigation panel, select services,
then click often and fast on "LAN Browser" -> crash

(I have only my local computer, connected with a router)

Interesting: I have now tried again, and it crashed at a different place:

(gdb) bt
#0  KDirListerCache::slotUpdateResult (this=0x866c7a8, j=0x866c83c) at 
kdirlister.cpp:1247
#1  0x40429173 in KDirListerCache::qt_invoke (this=0x866c7a8, _id=10, 
_o=0xbfffe490) at qucom_p.h:312
#2  0x40e3332d in QObject::activate_signal (this=0x8530640, clist=0x8438f48, 
o=0xbfffe490) at kernel/qobject.cpp:2357
#3  0x40364e67 in KIO::Job::result (this=0x8530640, t0=0x8530640) at 
jobclasses.moc:156
#4  0x4034b2b0 in KIO::Job::emitResult (this=0x8530640) at job.cpp:217
#5  0x4034cd19 in KIO::SimpleJob::slotFinished (this=0x8530640) at job.cpp:536
#6  0x40355f1e in KIO::ListJob::slotFinished (this=0x8530640) at job.cpp:2029
#7  0x40367e0c in KIO::ListJob::qt_invoke (this=0x8530640, _id=16, 
_o=0xbfffe7a0) at jobclasses.moc:1713
#8  0x40e3332d in QObject::activate_signal (this=0x852bf40, clist=0x85e9428, 
o=0xbfffe7a0) at kernel/qobject.cpp:2357

Again here, a 0-pointer (and an assert before):

kio (KDirWatch): WARNING: KDirWatch::removeDir can't handle '/'
ASSERT: "listers" in kdirlister.cpp (1219)

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 16133)]
KDirListerCache::slotUpdateResult (this=0x866c7a8, j=0x866c83c) at 
kdirlister.cpp:1247
1247      dir->complete = true;
(gdb) p dir
$4 = (KDirListerCache::DirItem *) 0x0


-- 
Best regards/Schöne Grüße

Martin    ()  ascii ribbon campaign - against html mail 
          /\                        - against microsoft attachments

       Some operating systems are called 'user friendly',
             Linux however is 'expert friendly'.




More information about the kde-core-devel mailing list