HELP needed: NetAccess::stat blockes when switching desktops

Andras Mantia amantia at kde.org
Thu Jan 8 20:55:20 GMT 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

 In an attempt to debug bug #71419, I realized that the problem is that 
NetAcess::stat
does not return. To explain a little more, the Quanta code does the following:
- - goes through a list of URLs
- - stats every URL

This operation can take some time, so you have enough time to switch to 
another desktop meantime.
The problem is that after switching to another desktop and back, Quanta is 
blocked. By interrupting it
shows that the NetAccess's enter_loop()/exit_loop() hack causes the problem. 
The BT shows the following calls:

#0  0x41c4d342 in select () from /lib/libc.so.6
#1  0x417c9380 in __JCR_LIST__ () from /usr/lib/qt-copy-3.2/lib/libqt-mt.so.3
#2  0x412ff1e6 in QEventLoop::enterLoop() (this=0x82e74a8) at 
kernel/qeventloop.cpp:198
#3  0x412e98f5 in QApplication::enter_loop() (this=0x82aa858) at 
kernel/qapplication.cpp:2737
#4  0x4091a6ca in KIO::NetAccess::enter_loop() (this=0xbfffee90)
    at /development/sources/kde-head/kdelibs/kio/kio/netaccess.cpp:402
#5  0x40919f34 in KIO::NetAccess::statInternal(KURL const&, int, bool, 
QWidget*) (this=0xbfffee90,
    url=@0xbfffefd0, details=2, source=true, window=0x0)
    at /development/sources/kde-head/kdelibs/kio/kio/netaccess.cpp:296
#6  0x409199f5 in KIO::NetAccess::stat(KURL const&, QValueList<KIO::UDSAtom>&, 
QWidget*) (
    url=@0xbfffefd0, entry=@0xbffff090, window=0x0)
    at /development/sources/kde-head/kdelibs/kio/kio/netaccess.cpp:196
#7  0x409199af in KIO::NetAccess::stat(KURL const&, QValueList<KIO::UDSAtom>&) 
(url=@0xbfffefd0,
    entry=@0xbffff090) 
at /development/sources/kde-head/kdelibs/kio/kio/netaccess.cpp:190

NetAccess::stat is called from projectupload.cpp:148, void 
ProjectUpload::slotBuildTree() method:
     KIO::NetAccess::stat(absUrl, entry);


This seems to be rather serious problem for everybody using NetAccess, and 
more accentuated for
 Quanta as we use this enter_loop()/exit_loop() also in other cases.

Funny: sometimes I can reproduce easily, other times I cannot reproduce at all 
(usually when running from
a terminal in gdb).
With the same executable.

I'm clueless. Does anybody have an idea?

Andras

- --
Quanta Plus developer - http://quanta.sourceforge.net
K Desktop Environment - http://www.kde.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

iD8DBQE//cO4TQdfac6L/08RAtTuAJ0UZpj/qZBSbuhUvyQn1jN7mpaX7gCfckT5
57+NLiTvwvC1UNdQBNhr20g=
=hytZ
-----END PGP SIGNATURE-----




More information about the kde-core-devel mailing list