Date | Commit message (Collapse) |
|
We now rely on Unicorn 4.0.0. We'll use the latest
kgio and raindrops versions anyways.
|
|
Reduces inconsistency.
|
|
Gotta keep using the latest and greatest.
|
|
kgio 2.4.0 has some 1.9.3dev fixes which affect us
|
|
Might as well use the latest and greatest.
|
|
Latest and greatest :D
|
|
No need for these
|
|
We want to use the singleton methods in Kgio to reduce
conditionals.
|
|
1.5 is nicer than older versions
|
|
This means we can remove Time.now.httpdate in the next commit
|
|
|
|
|
|
Cool.io (new version of Rev) support is explicitly added
(it always worked before). ":Coolio" may be used in place
of ":Rev" anywhere in your Rainbows! config file.
There is a new "keepalive_requests" config directive to limit
the number of requests a single connection may make (default:
100, same as nginx). This may be useful for better
load-balancing characteristics.
The old "Rev" prefixes remain supported as long as Cool.io
remains compatible with Rev (likely forever).
Bug fixes:
* Rainbows::ThreadTimeout middleware with multiple clients
* large, pipelined upload errors with Revactor+Coolio(Rev)
* high CPU usage for maintaining idle keepalive on *Fiber*
* needless ThreadPool wakeups
* request env prematurely cleared keepalive requests,
breaking some middlewares such as Clogger.
* "close" not called on body if wrapper and sendfile used together
Various code cleanups, and our RDoc website is JavaScript-free.
See the ChangeLog or git for all changes.
|
|
Cool.io is the new name for Rev. We'll continue to support Rev
until Cool.io breaks backwards compatibility. Rev may not be
supported if Cool.io is.
|
|
Unicorn 3.2.1 gives us an improved HttpParser#next? that
preserves state until the next HttpParser#parse call.
|
|
It is a common base so we can share documentation tasks
more easily with Unicorn and it ensures our RDoc no longer
has JavaScript in it!
|
|
We'll be taking advantage of configurable
client_buffer_body_size soon.
|
|
Kgio 2.0.0 has a superior API and less likely to conflict or
blow up with other applications. Unicorn 3.x requires Kgio 2.x,
too.
|
|
Unicorn 2.0.0 has CPU wakeup reductions.
|
|
Might as well go with the latest and greatest,
it has saner defaults at least.
|
|
We get basic internal API changes from Unicorn,
code simplifications coming next.
|
|
It removes the burden of byte slicing and setting file
descriptor flags. In some cases, we can remove unnecessary
peeraddr calls, too.
|
|
Unicorn 1.1.3 fixes potential race conditions during
SIGUSR1 log reopening.
|
|
This avoids costant resolution problems on client EOF
during input processing.
|
|
|
|
|
|
|
|
HeaderHash objects can only be used as headers without
violating Rack::Lint in Rack 1.1.0 or later.
|
|
This will allow us to be working_directory-aware as
far as config.ru goes.
|
|
|
|
It's useful given all the Gems we support but don't have hard
installation dependencies on.
|
|
no major internal changes until 2.0.0+
|
|
We expect no API changes in Unicorn for a while
|
|
|
|
This release fixes a denial-of-service vector for deployments
exposed directly to untrusted clients.
The HTTP parser in Unicorn <= 0.97.0 would trip an assertion
(killing the associated worker process) on invalid
Content-Length headers instead of raising an exception. Since
Rainbows! and Zbatery supports multiple clients per worker
process, all clients connected to the worker process that hit
the assertion would be aborted.
Deployments behind nginx are _not_ affected by this bug, as
nginx will reject clients that send invalid Content-Length
headers.
The status of deployments behind other HTTP-aware proxies is
unknown. Deployments behind a non-HTTP-aware proxy (or no proxy
at all) are certainly affected by this DoS.
Users are strongly encouraged to upgrade as soon as possible,
there are no other changes besides this bug fix from Rainbows!
0.91.0 nor Unicorn 0.97.0
This bug affects all previously released versions of Rainbows!
and Zbatery.
|
|
The Unicorn.builder helper will help us avoid namespace
conflicts inside config.ru, allowing us to pass tests.
While we're at it, port some tests over from the latest
unicorn.git for dealing with bad configs.
|
|
The HTTP parser in Unicorn <= 0.96.0 did not use the Ruby API
correctly. While this bug did not affect Unicorn itself,
Rainbows! allocates a new Unicorn::HttpParser object for every
client connection and Unicorn did not properly setup the parser
object to be freed.
|
|
Rev 0.3.2 makes performance with Threads* under Ruby 1.8
tolerable.
|
|
We may be making some changes to Unicorn 0.97.0
and allow us to share more code.
|
|
Unicorn 0.96.x should be released once Rack 1.1 is out.
|
|
|
|
|
|
|
|
|
|
We're simply too uncomfortable with the weird GC issues
associated with Tempfile and having linked temporary files at
all. Instead just depend on the #size-aware TmpIO class that
Unicorn 0.94.0 provides for us.
|
|
Unicorn 0.93.5 came to be so the heartbeat tests could
pass consistently.
|
|
It's easier to support especially for Thread* models
which are affected by the BSD stdio weirdness 0.93.4
works around.
|
|
Also new are added basic HTTP tests for UNIX domain socket
handling (for all models, now, of course).
|
|
Rack 1.0.1 is out and works nicely.
|
|
Everything is logged in git anyways and it'll be easier to
hand off to somebody else.
|