Weblog Navigation
First Previous Index Next Last
Bizarre Bug (Friday, May 22nd, 2009)

I've run into a strange bug that I haven't been able to track down yet. It involves uploading a file over the Web. Most of the time it works fine, but every once in awhile it will fail. As best I can tell, the browser isn't actually sending the data, so the server eventually gives up and returns an error message. Here's the weird part:

  • It only happens with Safari (both 3.x and the 4.0 beta), not Firefox
  • It only happens on Mac OS X (both Tiger and Leopard), not Windows
  • It only happens with HTTPS, not HTTP
  • It only happens with Apache 2.2, not 1.3 (I haven't tested 2.0)
  • It only happens about 10% of the time, randomly

On the client side, it just sits there for a few minutes, then displays 500 Internal Server Error. The error messages logged on the server are:

End of file found: Error reading request entity data
The timeout specified has expired: Error reading request entity data

I've reported the issue to Apple (Radar bug 6841997) and they're looking into it, but so far it doesn't sound like much progress has been made. The fact that the behavior is different depending on whether the server is Apache 1.3 or Apache 2.2 makes it seem like this couldn't be a browser problem, but on the other hand the fact that Firefox works fine suggests that it can't be a server problem either.

The WebKit folks are pointing at CFNetwork, the Mac OS X Cocoa framework that Safari uses to handle HTTP and HTTPS transactions. Safari for Windows uses a port of CFNetwork as well (bundled with the application), but apparently the Windows version doesn't have this issue.

Has anyone run into anything like this before? I have test cases if you're interested in troubleshooting.

Weblog Navigation
First Previous Index Next Last