1. Negative content-length in HTTP header

    I recently debugged a fairly interesting problem one of our HomeField users was having with uploads.  The file was > 2GB so the Flash uploader was not an option, and they were using our HTTP uploader.  But every time they tried, after a couple of minutes, the connection would fail due to timing out.  So I got in touch with their IT staff who graciously captured all the traffic on the uplink during a failed upload via wireshark.

    After filtering for the ip address of our upload server, I was surprised to see only a handful of packets, most of which were retransmits.  A deep dive showed that the TCP handshake completed, but the first HTTP packet never heard any response back from us.  It was retransmitted by the client, as per TCP specification, and the receiving software on our server never responded.  Closer examination of the HTTP portion of that packet revealed an interesting header field: content-length: -194931179

    HTTP 1.1 specification says that “any content-length greater than or equal to zero is a valid value.”  Unfortunately, Windows NT 5.1 (Windows XP) and IE 8 - according to the same header - have an integer overflow issue when dealing with files greater than 2GB.

    This OS level issue was causing the negative content-length, which prevented our server from responding, which caused a confusing (and poor) user experience.  Now I just need to get this user on a *nix OS…

     

    tags:  bug  http  homefield  customer support 

    Comments
  2. blog comments powered by Disqus