Tuesday, January 23, 2007

Popup Blockers and the Installer

For a while we've been getting the rare report from a user that our installer won't download - usually it dies mid-download on a given file.

(Our servers transfer a complete 600 MB demo copy of X-Plane once every 8 minutes, all the time. So if we get a report of a problem from one isolated user, it's almost always specific to the user. Systemic problems like a bad server generate a ton of email.)

One user stuck with us through some via-email debugging and we finally figured out one of the causes of failed downloads: popup blockers!

The X-Plane installer is built around simple off-the-shelf technology where possible. In particular, files are zipped and sent via http. This means we're using openly available existing standards, and we get to leverage free code. (The biggest win is being able to use "plain old apache" for serving the installer.)

To the operating system and any firewalls involved, the X-Plane installer doesn't look that different from a web browser. It goes to a web server and requests a big pile of files, a few at a time.

It turns out some popup blockers will detect patterns in URLs and automatically substitute the web content! So we go out asking for an object called com_120_60_1.obj.zip and the popup blocker decides that (perhaps because it's a zip file and has 120_60 in it) the file shouldn't be made available. It substitutes a 1-pixel black GIF file that the browser can show inconspicuously..

Of course, that one-pixel black file doesn't look anything like a zip file - when our installer gets it, the installer has a fit.

This bug was a mystery before - what would cause our servers to send just one user a tiny GIF file, and only in one case. Now that we know that the software is designed to zap web advertising, it makes perfect sense.

4 comments:

Kaminari said...

I have a different problem with the Windows installer, which I seem to be the only one on Earth to experience: the pref file is not saved in the installer directory but systematically at the root of *another* HD partition. This is very disturbing.

Just a wild guess, but it might be related to the fact that I've disabled the Indexing Service on my hard drive. X-Plane 5 had a bug which prevented it from running if Indexing Service was disabled.

Anonymous said...

I have the same "problem" (not a big issue actually, I just delete it after the installation). And yes, I have Indexing Service disabled as well.


Marco

Band of brothers said...

Exactly the same happens to me too - indexing thingy disabled as well.

Anonymous said...

I get this on linux with no firewall or proxy on the machine and the router. any ideas?