I've just upgraded a production web site with some new code to handle file uploads, using both the standard post technique and swfupload. This code was working perfectly in my development environment, and I'm not sure what I should ever start to look for. Here's the stack dump:
/!\ FAILSAFE /!\ Wed Feb 06 19:13:41 -0700 2008 Status: 500 Internal Server Error protocol error /my/app/web/vendor/rails/actionpack/lib/action_controller/ request.rb:510:in `read' /my/app/web/vendor/rails/actionpack/lib/action_controller/ request.rb:510:in `read_multipart' /my/app/web/vendor/rails/actionpack/lib/action_controller/ request.rb:445:in `parse_multipart_form_parameters' /my/app/web/vendor/rails/actionpack/lib/action_controller/ request.rb:383:in `parse_formatted_request_parameters' /my/app/web/vendor/rails/actionpack/lib/action_controller/ cgi_process.rb:78:in `request_parameters' /my/app/web/vendor/rails/actionpack/lib/action_controller/ request.rb:287:in `parameters' /my/app/web/vendor/rails/actionpack/lib/action_controller/ request.rb:22:in `request_method' /my/app/web/vendor/rails/actionpack/lib/action_controller/ request.rb:35:in `method' /my/app/web/vendor/rails/actionpack/lib/action_controller/ routing.rb:1483:in `extract_request_environment' /my/app/web/vendor/rails/actionpack/lib/action_controller/ routing.rb:1424:in `recognize' /my/app/web/vendor/rails/actionpack/lib/action_controller/ dispatcher.rb:170:in `handle_request' /my/app/web/vendor/rails/actionpack/lib/action_controller/ dispatcher.rb:115:in `dispatch' /my/app/web/vendor/rails/actionpack/lib/action_controller/ dispatcher.rb:126:in `dispatch_cgi' /my/app/web/vendor/rails/actionpack/lib/action_controller/ dispatcher.rb:9:in `dispatch' /my/app/web/vendor/rails/railties/lib/fcgi_handler.rb:101:in `process_request' /my/app/web/vendor/rails/railties/lib/fcgi_handler.rb:149:in `with_signal_handler' /my/app/web/vendor/rails/railties/lib/fcgi_handler.rb:99:in `process_request' /my/app/web/vendor/rails/railties/lib/fcgi_handler.rb:77:in `process_each_request' /usr/local/lib/ruby/site_ruby/1.8/fcgi.rb:612:in `each_cgi' /usr/local/lib/ruby/site_ruby/1.8/fcgi.rb:609:in `each' /usr/local/lib/ruby/site_ruby/1.8/fcgi.rb:609:in `each_cgi' /my/app/web/vendor/rails/railties/lib/fcgi_handler.rb:76:in `process_each_request' /my/app/web/vendor/rails/railties/lib/fcgi_handler.rb:50:in `process!' /my/app/web/vendor/rails/railties/lib/fcgi_handler.rb:24:in `process!' /my/app/web/public/dispatch.fcgi:26
Regardless of how the file is uploaded, this is the termination point of the error:
/my/app/web/vendor/rails/actionpack/lib/action_controller/request.rb: 510:in `read'
which is this line:
status = body.read(boundary_size)
So, it seems that the upload is barfing when trying to read the streaming content.
This happens with both Firefox and IE. Does anyone have any ideas why this is happening? Help!