Release Name: 0.98.0
Notes:
Unicorn is an HTTP server for Rack applications designed to only serve
fast clients on low-latency, high-bandwidth connections and take
advantage of features in Unix/Unix-like kernels. Slow clients should
only be served by placing a reverse proxy capable of fully buffering
both the the request and response in between Unicorn and slow clients.
* http://unicorn.bogomips.org/
* mongrel-unicorn@rubyforge.org
* git://git.bogomips.org/unicorn.git
Changes:
Deployments that suspend or hibernate servers should no longer
have workers killed off (and restarted) upon resuming.
For Linux users of {raindrops}[http://raindrops.bogomips.org/]
(v0.2.0+) configuration is easier as raindrops can now
automatically detect the active listeners on the server
via the new Unicorn.listener_names singleton method.
For the pedantic, chunked request bodies without trailers are no
longer allowed to omit the final CRLF. This shouldn't affect
any real and RFC-compliant clients out there. Chunked requests
with trailers have always worked and continue to work the same
way.
The rest are mostly small internal cleanups and documentation
fixes. See the commit logs for full details.
Changes:
.document | 4 +-
GIT-VERSION-GEN | 2 +-
GNUmakefile | 16 ++++++++-----
KNOWN_ISSUES | 20 +++++++++++++++++
README | 26 +++++++++++-----------
Rakefile | 17 ++++++++-------
bin/unicorn | 7 ++---
bin/unicorn_rails | 27 +++++++++++------------
ext/unicorn_http/unicorn_http.rl | 8 +-----
lib/unicorn.rb | 43 ++++++++++++++++++++++++++-----------
lib/unicorn/const.rb | 2 +-
lib/unicorn/socket_helper.rb | 2 +
test/rails/test_rails.rb | 2 +-
test/unit/test_http_parser_ng.rb | 4 +++
test/unit/test_server.rb | 4 +++
test/unit/test_tee_input.rb | 32 ++++++++++++++++++++++++++-
test/unit/test_util.rb | 10 ++++----
17 files changed, 150 insertions(+), 76 deletions(-)
commit 2db033e1285da6dc4e9c3e2a9519de776666a0cc
Author: Eric Wong
Date: Tue May 4 16:55:24 2010 -0700
unicorn 0.98.0
Deployments that suspend or hibernate servers should no longer
have workers killed off (and restarted) upon resuming.
For Linux users of {raindrops}[http://raindrops.bogomips.org/]
(v0.2.0+) configuration is easier as raindrops can now
automatically detect the active listeners on the server
via the new Unicorn.listener_names singleton method.
For the pedantic, chunked request bodies without trailers are no
longer allowed to omit the final CRLF. This shouldn't affect
any real and RFC-compliant clients out there. Chunked requests
with trailers have always worked and continue to work the same
way.
The rest are mostly small internal cleanups and documentation
fixes. See the commit logs for full details.
commit 174b5d01e802c6a4ff9d1467f04c5acafb916105
Author: Eric Wong
Date: Tue May 4 16:52:10 2010 -0700
README: avoid needless links to /Unicorn.html module
It makes the HTML page too big and busy.
commit 87b792445e5e38291fc50b6c3b825a63e9adf130
Author: Eric Wong
Date: Fri Apr 30 00:47:28 2010 +0000
add global Unicorn.listener_names method
This is useful as a :listeners argument when setting up
Raindrops::Middleware (http://raindrops.bogomips.org/),
as it can be done automatically.
commit 83d2170442144a1b2f623b32a1291befaf59c968
Author: Eric Wong
Date: Mon Apr 26 16:56:10 2010 -0700
GNUmakefile: fix backwards compat links for manpages
commit 4bef5b2d0bf9cdad88a47a32b751f834877e4802
Author: Eric Wong
Date: Mon Apr 26 16:17:26 2010 -0700
GNUmakefile: rdoc 2.5.x compatibility
commit b8ca75667c5710ea43911d8eee994730a00d8eaa
Author: Eric Wong
Date: Mon Apr 26 16:12:43 2010 -0700
GNUmakefile: avoid FS namespace conflict
'tmp' may be a directory when using rake-compiler (or isolate),
so avoid naming a file 'tmp'
commit 8ae35a788bdfe24ad6bf58f19cad101acb1bd9f2
Merge: 6996cdd 3ce9257
Author: Eric Wong
Date: Mon Apr 26 16:03:14 2010 -0700
Merge branch 'maint'
* maint:
unicorn 0.97.1 - fix HTTP parser for Rainbows!/Zbatery
http: negative/invalid Content-Length raises exception
commit 6996cdd8d7d36b72d4c1ee30a11969d164ed85e2
Author: Eric Wong
Date: Mon Apr 26 15:49:01 2010 -0700
Rakefile: hopefully fix optional rake-compiler support
commit c54df54f6633f3467b64fdfc9cbff278d02397ac
Author: Eric Wong
Date: Mon Apr 26 15:02:46 2010 -0700
http: pedantic fix for trailer-less chunked requests
HTTP requests without trailers still need a CRLF after the last
chunk, that is: it must end as: "0\r\n\r\n", not "0\r\n". So
we'll always pretend there are trailers to parse for the
sake of TeeInput.
This is mostly a pedantic fix, as the two bytes in the socket
buffer are unlikely to trigger protocol errors.
commit de0e3a2f969730f4682daf6cff1e0d424ddd43e1
Author: Eric Wong
Date: Tue Apr 20 22:42:34 2010 +0000
KNOWN_ISSUES: fix error in isolate example :x
commit 6727d8ab1b2e841f7153bda071ab3b800bbce089
Author: Eric Wong
Date: Tue Apr 20 20:48:24 2010 +0000
KNOWN_ISSUES: additional note for Isolate usage
commit de58973a6025f799ee7897a2cf58bb01eca87631
Author: Eric Wong
Date: Mon Apr 19 13:40:37 2010 -0700
http: negative/invalid Content-Length raises exception
...instead of tripping an assertion.
This fixes a potential denial-of-service for servers exposed directly
to untrusted clients.
This bug does not affect supported Unicorn deployments as Unicorn is
only supported with trusted clients (such as nginx) on a LAN. nginx is
known to reject clients that send invalid Content-Length headers, so any
deployments on a trusted LAN and/or behind nginx are safe.
Servers affected by this bug include (but are not limited to) Rainbows!
and Zbatery. This does not affect Thin nor Mongrel which never got
request body filtering treatment that the Unicorn HTTP parser got in
August 2009.
commit 5dd4c12411b5567fb340e897d0b544dfff7fa7a2
Author: Eric Wong
Date: Sat Apr 17 07:43:57 2010 -0700
avoid nuking workers after waking up from suspend/hibernate
Trying to fix this issue again, as it seems to have been broken
again.
commit 900628706d6ced43fde614a6fc57f2d2d69e945d
Author: Eric Wong
Date: Sat Apr 17 07:33:53 2010 -0700
prefer explicit requires when possible
There is no need to be using autoload except for HttpResponse
which depends on Rack (which we want to load as late as
possible).
commit 22e3ed4de0e89b97dac91c95c796eb8a7f93e5de
Author: Eric Wong
Date: Thu Apr 8 18:05:43 2010 -0700
unicorn: load constants after app has loaded
This will help ensure we use the same version of Rack the
application uses and avoid loading conflicting/incompatible
versions.
commit 0792b37d5e28d3ea1585d5837682cde4d0319a8a
Author: Eric Wong
Date: Thu Apr 8 17:37:42 2010 -0700
bin/*: remove unnecessary listeners variable
commit 9c52f98c77ad5bbe97455f43f5d31bd5759d0685
Author: Eric Wong
Date: Thu Apr 8 17:32:41 2010 -0700
unicorn_rails: rename variable for consistency
"ru" is the preferred name in Unicorn.builder, so we'll
match that to make things easier to follow.
commit 8054989137b84edfa6bf061f708716536dc05d59
Author: Eric Wong
Date: Thu Apr 8 17:26:27 2010 -0700
unicorn_rails: respect user's encoding in config.ru in 1.9
Do not assume the user wants config.ru to be Encoding::BINARY
for 1.9.
This is a followup to a4a8bf7604d1c15c5a8fb9cb6be37e8bccb32e52
commit e1a72d58add4260feb6da56d9d588270173da74f
Author: Eric Wong
Date: Thu Apr 8 17:10:46 2010 -0700
unicorn_rails: use TOPLEVEL_BINDING for eval
This is to ensure there are no namespace inconsistencies
commit 105d9f8b87b0667686ba13960f734b90f3055977
Author: Eric Wong
Date: Wed Mar 24 12:40:02 2010 -0700
KNOWN_ISSUES: document Array#shuffle / Array#sample issue under 1.9
We're one of the few forking apps that run into this rarely used
feature, so we'll document it here.
commit 36d0fa866ac696ee8acde74f2cffccd06ab8e816
Author: Eric Wong
Date: Sat Mar 20 19:46:44 2010 -0700
tests: fix to run under Ruby 1.9.2dev
Avoid Tempfile.new(nil), which breaks under Ruby 1.9.2
and was probably a bad idea to begin with.
|