Wednesday, February 11, 2009

Why does Google Chrome sometimes have trouble loading Web pages?

Every once in a while I notice that the Google Chrome Web browser is suddenly unable to load some, but not all, Web pages. The status line says "Waiting..." but never comes back. Hitting Refresh (repeatedly) does not resolve the problem.

Here is what fixes the problem (for me):

  1. Start Microsoft Internet Explorer. I know, I know, this is very painful for some people!!
  2. Visit (using IE) the Web site which was not loading in Chrome. This should work fine.
  3. Close all Chrome browser windows. This is necessary. Hitting Refresh again, even after IE is able to view the Web site, will still not work in Chrome.
  4. Restart Chrome.
  5. Visit the Web site in Chrome. This should work fine now.

Another solution is to disable DNS prefetching in Chrome. I have not tried that, mostly since I suspect it will slow Chrome down and speed is one of my main reasons for using Chrome as my preferred browser.

The root of the problem is DNS caching. DNS is the Internet technology infrastructure that figures out where domain names (Web sites and email) are really located (so-called IP addresses.)

The real root of the problem is that the Internet has a rather dysfunctional infrastructure which works much of the time but has intermittent failures a fair percentage of the time, probably mostly due to fluctuations in traffic intensity. Usually, all the application has to do is simply retry a failed network access one or more times and eventually it will succeed after the intermittent traffic disruption passes.

A traditional problem is that DNS lookups are relatively expensive and can occur dozens of times even for what appears to be a single Web page (images located on other domains, advertising scripts, etc.), so the Web browser seeks to optimize and "cache" information about whether domain names are accessible.

IE has a dumb, and slower, approach to this issue, but it has the benefit of being more reliable.

Chrome has a fancy new feature, called DNS Prefetching (or Pre-Resolving), which results in fast loading of Web sites - most of the time, but which apparently has some bug which causes Chrome to improperly negatively cache domain names when one of this intermittent access problems occurs.

There are already two Google "chromium" (the open source project for Chrome) bugs filed on this issue:

  1. Issue 3819: Errant "domain not found" cached when DNS Prefetching is enabled. Status: WontFix!
  2. Issue 3041: DNS pre-fetching causes frequent internet loss. Status: Unconfirmed.

In terms of frequency, I have seen it at least half a dozen times over the past few months, but rarely more than once a week.

It may in fact be caused by some difficulty with a router (e.g., that prevents access to the DNS server), so that Googlers with great Internet access (as opposed to us consumers) may never see the problem at all.

-- Jack Krupansky


Post a Comment

Subscribe to Post Comments [Atom]

<< Home