Running into the Internet Explorer Travel Log bug

I recently ran into some strange behavior in an application that I was working with. In some particular conditions, the browser back button would become disabled, and I could no longer go back to see the last page I was on. At first I thought it was a random browser bug, unrelated to the page I was viewing, but with some repeated testing, I could always get this issue to occur on a particular page in my application. So something in the application had to be having this effect on the browser.

After exhaustively searching through the source code to make sure nothing in the code was touching the browser history (nothing was), I started looking elsewhere. Because this particular page did not show the bad behavior with a small data set, but did with a large data set, that gave me some search criteria to use to start my search. It didn’t take long. I found the description of the problem here: http://www.enhanceie.com/ie/bugs.asp. (This site is updated by Eric Lawrence of Microsoft and Fiddler fame) It’s known as the Travel Log bug, and is summarized on that page like so:

“If there is a form input field with a value longer than 523,659 characters, when you navigate away from the page, IE may clear the current session’s travellog (similar to history), disabling the back and forward buttons.”

Don’t know what a Travel Log is? I didn’t either, even though I’ve been programming for the web for more than 10 years. Here’s Microsoft’s description of the travel log: http://msdn.microsoft.com/en-us/library/aa768366%28v=vs.85%29.aspx. In full-blown IE you might recognize it as the list of visited locations that show up when you click the drop-down links next to the back and forward buttons:

image

So how could I have > 523,659 characters in one form field? In my case it came down to View State. The application was indiscriminantly saving lots of data in the View State, which gets written to a hidden form field on the page. Now I have to go back and figure out what it’s saving there and why. The page is big, but not so big that I should need that much View State.

I reproduced this issue in Internet Explorer 7 and 8, but things worked fine in Internet Explorer 9.

image If I have free time and a TV, you can be pretty safe in guessing that I’m watching a classic movie. This topic reminded me of one, “Sullivan’s Travels’” by director Preston Sturges. It stars Joel McCrea and Veronica Lake, and I highly recommend it (8.2/10 stars on imdb.com). If you’ve seen and enjoyed the Coen brothers movie “O Brother, Where Art Thou?”,  you might have particular interest, since that is the name of the movie that the lead character in “Sullivan’s Travels” is planning to make. Coincidence? Nope.

Advertisements
This entry was posted in ASP.Net, Web Development. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s