From 5e4f790847198e1267b2fbd5decfa09e5cc3d618 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 17 May 2011 17:38:12 -0700 Subject: doc: recommend io_splice 4.1.1 or later io_splice 4.1.1 works around issues with socket buffers filling up pipe buffers on blocking splice. See http://lkml.org/lkml/2009/1/13/478 for a better explanation. --- lib/rainbows/configurator.rb | 4 +++- t/test_isolate.rb | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/rainbows/configurator.rb b/lib/rainbows/configurator.rb index a1d90cb..1b93fc7 100644 --- a/lib/rainbows/configurator.rb +++ b/lib/rainbows/configurator.rb @@ -190,7 +190,9 @@ module Rainbows::Configurator # end # # Keep in mind that splice(2) itself is a relatively new system call - # and has been buggy in many older Linux kernels. + # and has been buggy in many older Linux kernels. If you're proxying + # the output of sockets to the client, be sure to use "io_splice" + # 4.1.1 or later to avoid stalling responses. # # Default: IO on Ruby 1.9+, false otherwise def copy_stream(klass) diff --git a/t/test_isolate.rb b/t/test_isolate.rb index fe2aebc..562f1b6 100644 --- a/t/test_isolate.rb +++ b/t/test_isolate.rb @@ -41,7 +41,7 @@ Isolate.now!(opts) do gem 'sleepy_penguin', '2.0.0' # is 2.6.32 new enough? - gem 'io_splice', '4.1.0' if `uname -r`.strip > '2.6.32' + gem 'io_splice', '4.1.1' if `uname -r`.strip > '2.6.32' end end -- cgit v1.2.3-24-ge0c7