Release Name: 4.4.0
Notes:
Rainbows! 4.4.0 - minor improvements
Rainbows! is an HTTP server for sleepy Rack applications. It is based on
Unicorn, but designed to handle applications that expect long
request/response times and/or slow clients.
* http://rainbows.rubyforge.org/
* rainbows-talk@rubyforge.org
* git://bogomips.org/rainbows.git
* http://rainbows.rubyforge.org/NEWS.atom.xml
Changes:
For epoll/Cool.io-based concurrency models, shutdown() is now
used to timeout keepalive clients to avoid race conditions.
Minor documentation improvements.
Changes:
GIT-VERSION-GEN | 2 +-
lib/rainbows/configurator.rb | 2 +-
lib/rainbows/const.rb | 2 +-
lib/rainbows/coolio/client.rb | 7 ++++++-
lib/rainbows/epoll.rb | 2 +-
lib/rainbows/epoll/client.rb | 2 +-
lib/rainbows/fiber_pool.rb | 2 +-
lib/rainbows/http_server.rb | 3 ++-
lib/rainbows/stream_response_epoll.rb | 24 +++++++++++++++++++++++-
lib/rainbows/stream_response_epoll/client.rb | 3 ++-
lib/rainbows/thread_timeout.rb | 9 +++++++++
lib/rainbows/xepoll_thread_pool/client.rb | 2 +-
lib/rainbows/xepoll_thread_spawn/client.rb | 2 +-
t/t0501-cramp-rainsocket.sh | 2 +-
t/test_isolate.rb | 14 +++++++-------
15 files changed, 58 insertions(+), 20 deletions(-)
commit 7450ebd46b6e7cf0eb59a3d6d561d5d6252bef16
Author: Eric Wong
Date: Sat Aug 18 07:04:11 2012 +0000
Rainbows! 4.4.0 - minor improvements
For epoll/Cool.io-based concurrency models, shutdown() is now
used to timeout keepalive clients to avoid race conditions.
Minor documentation improvements.
commit 5bcbe397f4457fa6c76443cc77d662139ef464f2
Author: Eric Wong
Date: Thu Jul 19 13:10:37 2012 -0700
thread_timeout: document additional caveats
Again, for the one thousandth time, timing out threads is very
tricky business :<
commit 73a76531b7f4826cdb3bad0a0286038fb6ade4f3
Author: Eric Wong
Date: Sun Jul 1 03:56:39 2012 +0000
test_isolate: bump raindrops dependency
As usual, test with the latest released version to avoid
surprises.
commit 36ce10c49ce7aa0df9d47f5a5f870c23c1891258
Author: Eric Wong
Date: Sat Jun 30 19:57:08 2012 +0000
coolio+xepoll_thread*: use shutdown() for keepalive timeout
Triggering Errno::EBADF is tricky in multithreaded situations
due to possible race conditions and yet-to-be discovered bugs.
shutdown(2) is also safe against apps the fork() internally but
do not execve(2) nor set FD_CLOEXEC.
n.b. calling fork() after pthreads are spawned may not be safe
on all platforms w.r.t. malloc, but /is/ the case for glibc on
GNU/Linux.
Follow-up-to: commit a5b987619f4b793203f6a50e424fe98c5b0794ba
commit a5b987619f4b793203f6a50e424fe98c5b0794ba
Author: Eric Wong
Date: Mon Jun 18 20:32:39 2012 +0000
epoll*: favor shutdown(2) for keepalive timeout
Triggering Errno::EBADF is tricky in multithreaded situations
due to possible race conditions and yet-to-be discovered bugs.
shutdown(2) is also safe against apps the fork() internally but
do not execve(2) nor set FD_CLOEXEC.
n.b. calling fork() after pthreads are spawned may not be safe
on all platforms w.r.t. malloc, but /is/ the case for glibc on
GNU/Linux.
commit 604f64f624d562f480dc8424a6597ec5b32947df
Author: Eric Wong
Date: Wed May 9 21:11:39 2012 +0000
fiber_pool: take Fibers from larger pools faster
Array#pop can be significantly faster than Array#shift on large
arrays (especially since we push into the Array). This is
because Array#shift needs to shift all elements in the array,
and Array#pop only needs to shorten the array by one element.
The Fiber stack may also be hotter in CPU caches when we choose
the most-frequently used stack.
commit 3e61265d4193340721dd53178c43c4fa24debb79
Author: Eric Wong
Date: Wed May 9 21:11:13 2012 +0000
test_isolate: update deps for EM tests
async_sinatra and rack-fiber_pool had new versions since
we last updated.
commit bdd64821feba82d9fce45c8dac64ba7b7bb530ac
Author: Eric Wong
Date: Wed May 9 02:20:42 2012 +0000
test_isolate: bump unicorn and kgio versions for testing
Users will pull the latest upstream, ensure things keep
working.
commit bbd55c8bcd0d2833c99a2c23856ff07be7f46f9a
Author: Eric Wong
Date: Wed May 9 02:18:08 2012 +0000
stream_response_epoll: fix for unicorn 4.3.x
unicorn 4.3.x now calls shutdown() explicitly on the socket,
so we can't just rely on a dup()-ed FD to keep a socket around.
commit 9573d9bc6c63aced28300a9d7346b5575eed8b7d
Author: Eric Wong
Date: Tue May 8 23:18:41 2012 +0000
tests: require sleepy_penguin 3.1.0 or later
We'll be making the XEpollThreadPool users depend on this, too.
commit 335b383fa43a6d21d473ebc81668dae9a3c09055
Author: Eric Wong
Date: Wed Apr 11 21:48:36 2012 +0000
doc: some spelling fixes
Found with rdoc-spellcheck
commit f2c27e950b3314b4a647c482d506ba4c7314cac4
Author: Eric Wong
Date: Thu Feb 23 08:07:13 2012 +0000
t/test_isolate: update test dependencies
At least for the gems I'm most familiar with...
commit b5756023920bc48bd879b419f80849ded38173c8
Author: Eric Wong
Date: Wed Oct 12 16:29:23 2011 -0700
t0501: fix ambiguous shell construct for capture + subshells
Starting with "$((" can be ambiguous and confused for shell arithmetic.
commit db46699c438c2d1287563587fddea84e34c53482
Author: Eric Wong
Date: Wed Oct 12 16:14:49 2011 -0700
http_server: fix log message if using Base (no concurrency)
Telling the user worker_connections=50 when using the Base
concurrency model is misleading.
|