aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_controller/cgi_process.rb8
2 files changed, 6 insertions, 4 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index c91a0dcde7..765ef51029 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Rescue Errno::ECONNRESET to handle an unexpectedly closed socket connection. Improves SCGI reliability. #3368, #6226 [sdsykes, fhanshaw@vesaria.com]
+
* Added that respond_to blocks will automatically set the content type to be the same as is requested [DHH]. Examples:
respond_to do |format|
diff --git a/actionpack/lib/action_controller/cgi_process.rb b/actionpack/lib/action_controller/cgi_process.rb
index 3170bc1ce7..5a08171ef2 100644
--- a/actionpack/lib/action_controller/cgi_process.rb
+++ b/actionpack/lib/action_controller/cgi_process.rb
@@ -173,7 +173,7 @@ end_msg
convert_content_type!(@headers)
output.binmode if output.respond_to?(:binmode)
output.sync = false if output.respond_to?(:sync=)
-
+
begin
output.write(@cgi.header(@headers))
@@ -189,8 +189,8 @@ end_msg
end
output.flush if output.respond_to?(:flush)
- rescue Errno::EPIPE => e
- # lost connection to the FCGI process -- ignore the output, then
+ rescue Errno::EPIPE, Errno::ECONNRESET
+ # lost connection to parent process, ignore output
end
end
@@ -207,4 +207,4 @@ end_msg
end
end
end
-end \ No newline at end of file
+end