Re: How to debug kioslave problems ? [Was: Problem opening
On Tuesday 04 April 2006 17:35, Pavel Troller wrote:[color=blue]
> I've made a new bunch of tests, trying to find, why konq crashes.[color=green]
> > Hi!
> > Yes, it helped a lot. Now the stat(bluetooth:/) function is called and there
> > is no error from the slave.
> > However, konqueror crashes immediately:
> > kio_bluetooth: KioBluetooth::KioBluetooth()
> > kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-patrol/ksycoca
> > kio_bluetooth: kio_bluetooth::stat(bluetooth:/)
> > kio (KRun): Finished
> > konqueror [kdeinit] bluetooth:/: krun.cpp:1096: virtual void KRun::slotStatResult(KIO::Job*): Assertion `m_bScanFile || m_bIsDirectory' failed.
> > KCrash: crashing... crashRecursionCounter = 2
> > KCrash: Application Name = konqueror path = <unknown> pid = 26408
> > Does it mean that there is something wrong with the data returned by the
> > slave ? I've looked at krun.cpp and it seems that the only possibility is that
> > KIO::UDS_FILE_TYPE entry is not present. But in kiobluetooth.cpp, there is
> > addAtom(entry, UDS_MIME_TYPE, mimeType); // this is empty for the failing call
> > addAtom(entry, UDS_FILE_TYPE, S_IFDIR);
> > addAtom(entry, UDS_GUESSED_MIME_TYPE, "inode/folder");
> > and I've verified that this code is really executed when the slave runs.
> > So what the hell is going wrong now ?[/color]
> I've verified that
> 1) addAtom is correctly called in the slave several times, setting all the
> above and much more (I've corrected inode/folder to inode/directory, but it
> has no effect at all), when creating the directory.[/color]
From stat(), right? We're not talking about listDir() at this point.
> 2) iteration loop in krun.cpp, starting around line 1071, is not executed even
> once, i.e. the list comes empty to it. It explains why the assert occurs.
> I cannot explain, why the stat() results are not transferred correctly, sorry.
> Is anybody willing to help me ?[/color]
OK so this is about kdelibs-3, not kdelibs-4. This lowers the chances of a bug in krun considerably...
Does the slave actually call statEntry() from stat(), with the uds entry?
Where's the code for that ioslave? extragear?
David Faure, [email]firstname.lastname@example.org[/email], sponsored by Trolltech to work on KDE,
Konqueror ([url]http://www.konqueror.org[/url]), and KOffice ([url]http://www.koffice.org[/url]).
>> Visit [url]http://mail.kde.org/mailman/listinfo/kde-devel#unsub[/url] to unsubscribe <<[/color][/color]