Your message dated Sun, 2 May 2010 18:01:42 +0200
with message-id <201005021801.42903.ewoer...@kde.org>
and subject line
has caused the Debian Bug report #537383,
regarding ProxyScout in Konqueror from testing works VERY slow with proxy
autoconfiguration
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)
--
537383: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=537383
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: konqueror
Version: 4:4.2.2-1
When I tried to open a web page in the Konqueror, it often stopped working for
a while (didn't respond to actions, redraw window, etc). The same happened
sometimes when I was closing the browser. And the overall performance was very
low.
I strace'd an instance of the browser to find out what did it wait for:
xima...@agavrichen2#9:~$ type watch-trace-for-waits
watch-trace-for-waits is a function
watch-trace-for-waits ()
{
local DELAY=1 PRINTED=false LN=$(cat "$1" | wc -l);
local SECCNT=$DELAY;
while true; do
if ! {
ps -ef | grep -q "$2"
}; then
$PRINTED && echo $SECCNT;
return;
fi;
local NEWLN=$(cat "$1" | wc -l);
if [ "$NEWLN" == "$LN" ]; then
if $PRINTED; then
SECCNT=$(($SECCNT+$DELAY));
else
echo -n "Trace line #"$(($LN+1))": ";
PRINTED=true;
fi;
else
if $PRINTED; then
echo $SECCNT" seconds";
PRINTED=false;
SECCNT=$DELAY;
else
LN="$NEWLN";
fi;
fi;
sleep $DELAY;
done
}
xima...@agavrichen2#9:~$ strace konqueror 'http://google.com' 2>konq.strace &
time watch-trace-for-waits konq.strace $!
[1] 30964
Trace line #13901: 14 seconds
Trace line #15903: 13 seconds
Trace line #16708: 13 seconds
Trace line #17311: 13 seconds
Trace line #18362: 13 seconds
Trace line #18848: 2 seconds
Trace line #18856: 9 seconds
Trace line #19860: 13 seconds
<-- Soon after that, the page had been loaded
<-- and I tried to close the window
Trace line #21607: 4 seconds
Trace line #21615: 5 seconds
Trace line #21638: [1]+ Done strace konqueror
'http://google.com' 2> konq.strace
14 seconds
Trace line #23669: 2
real 2m25.351s
user 0m2.432s
sys 0m3.660s
xima...@agavrichen2#9:~$ cat konq.strace | lines 13901 15903 16708 17311 18362
18848 18856 19860 21607 21615 21638
13901: poll([{fd=8, events=POLLIN}], 1, 25000) = 1 ([{fd=8, revents=POLLIN}])
15903: poll([{fd=8, events=POLLIN}], 1, 25000) = 1 ([{fd=8, revents=POLLIN}])
16708: poll([{fd=8, events=POLLIN}], 1, 25000) = 1 ([{fd=8, revents=POLLIN}])
17311: poll([{fd=8, events=POLLIN}], 1, 25000) = 1 ([{fd=8, revents=POLLIN}])
18362: poll([{fd=8, events=POLLIN}], 1, 25000) = 1 ([{fd=8, revents=POLLIN}])
18848: poll([{fd=8, events=POLLIN}], 1, 25000) = 1 ([{fd=8, revents=POLLIN}])
18856: poll([{fd=8, events=POLLIN}], 1, 20512) = 1 ([{fd=8, revents=POLLIN}])
19860: poll([{fd=8, events=POLLIN}], 1, 25000) = 1 ([{fd=8, revents=POLLIN}])
21607: poll([{fd=8, events=POLLIN}], 1, 25000) = 1 ([{fd=8, revents=POLLIN}])
21615: poll([{fd=8, events=POLLIN}], 1, 19156) = 1 ([{fd=8, revents=POLLIN}])
21638: poll([{fd=8, events=POLLIN}], 1, 25000) = 1 ([{fd=8, revents=POLLIN}])
xima...@agavrichen2#9:~$ head -13901 konq.strace | egrep -n '^open.* = 8$' |
tail -1
2571:open("/usr/lib/libdbus-1.so.3", O_RDONLY) = 8
xima...@agavrichen2#9:~$ head -21638 konq.strace | egrep -n '^open.* = 8$' |
tail -1
2571:open("/usr/lib/libdbus-1.so.3", O_RDONLY) = 8
xima...@agavrichen2#9:~$
As you see, it took more than two minutes to show up the Google's main page,
making web-surfing in Konqueror impossible. One and a half minute of these two
was spent waiting for libdbus.
After tracing Konqueror again with the strace string size set to a bigger
value than the default one I've found that before poll()ing the DBus, the
browser sends it a message containing words "modules/proxyscout:
writev(8,
[{"l\1\0\1\0\0\0I\0\0\0w\0\0\0\1\1o\0\23\0\0\0/modules/proxyscout\0\0\0\0\0\6\1s\0\f\0\0\0org.kde.kded\0\0\0\0\2\1s\0\27\0\0\0org.kde.KPAC.ProxyScout\0\3\1s\0\v\0\0\0proxyForUrl\0\0\0\0\0\10\1g\0\1s\0\0"...,
136}, {"6\0\0\0http://www.google.ru/intl/en_com/images/logo_plain.png\0"...,
59 }], 2) = 195
gettimeofday({1247848875, 377033}, NULL) = 0
poll([{fd=8, events=POLLIN}], 1, 25000) = 1 ([{fd=8, revents=POLLIN}])
I'm using proxy server autoconfiguration. Seems like Konqueror is not caching
the autoconfiguration and every time you need to view a page, it sends a new
query to the proxy configuration URL. If this is intended, it is a -- really
-- bad idea. Two or five minutes per any single web page exceed much anyone's
expectations.
I'm using Debian GNU/Linux Testing/Squeeze:
- kernel 2.6.26-2-686 (2.6.26-17)
- libc6 2.9-12
--
Artyom Gavrichenkov | Engineer, HP Global Delivery Russia Center | Mailto:
xima...@hp.com | Tel. No: +7 916 515 49 58
--- End Message ---
--- Begin Message ---
Version: 4:4.4.2-1
No response from the submitter for 4 weeks, closing.
--- End Message ---