[Webkit-unassigned] [Bug 41630] New: DNS prefetching spams resolver, shoots self in the foot
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Jul 5 13:22:06 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=41630
Summary: DNS prefetching spams resolver, shoots self in the
foot
Product: WebKit
Version: 528+ (Nightly build)
Platform: PC
OS/Version: Mac OS X 10.5
Status: NEW
Severity: Normal
Priority: P2
Component: WebKit Gtk
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: danw at gnome.org
I'm filing this against WebKitGtk to be conservative, but maybe it's a more general problem.
There is a problem in epiphany where sometimes you click on a link and it claims there's no such host, even when that's obviously untrue, and in fact, clicking reload will load the page successfully at this point.
The bug seems to go like this:
1. User loads a page with a billion links
2. WebKit calls prefetchDNS a billion times
3. In the Gtk version at least, this results in a billion
getaddrinfo() calls
4. The upstream DNS server starts sending back DNS responses,
but does so slowly. Probably because it's a wi-fi hub
powered by a relatively slow processor and it's processing
the requests more-or-less in serial rather than in parallel.
5. User clicks a link partway down the page. Meanwhile, the wi-fi
hub continues slowly sending back DNS responses.
6. WebKitGtk/libsoup sees that there's an outstanding DNS request
for the host in the clicked-on link, and waits for it to
complete. Meanwhile, the wi-fi hub continues slowly sending back
DNS responses.
7. After 5 seconds, glibc times out all of the DNS requests that
are still outstanding.
8. WebKitGtk/libsoup get the DNS error and show it to the user.
network/cf/DNSCFNet.cpp seems to have some spam-preventing code. Perhaps that should be happening at a higher level.
Alternatively, maybe we don't need to prefetchDNS on every single link on the page at page load time. For Gtk at least, we're going to want to distinguish page-load prefetching from on-hover prefetching anyway, because we want to do proxy URI prefetching on hover, but not on page load (qv https://bugzilla.gnome.org/show_bug.cgi?id=605065)
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list