Date | Commit message (Collapse) |
|
Race conditions abound in the world of concurrency!
|
|
We now rely on Unicorn 4.0.0. We'll use the latest
kgio and raindrops versions anyways.
|
|
This test seems to fail sometimes with Epoll and XEpoll...
|
|
That's been around forever, and we think Rubinius supports
that...
|
|
It's already a runtime dependency
|
|
Lowering this will lower worst-case memory usage and mitigate some
denial-of-service attacks. This should be larger than
client_header_buffer_size.
The default value is carried over from Mongrel and Unicorn.
|
|
Do not assume middlewares/applications are stupid and blindly
add chunking to responses (we have precedence set by
Rack::Chunked).
|
|
Oops.
|
|
We send HEAD requests and expect body-less responses.
Noticed while running a newer rack version after re-isolating.
|
|
Gotta keep using the latest and greatest.
|
|
This doesn't use Rainbows::Base so we have no keepalive support
at all. This could eventually be an option for streaming
applications.
|
|
The latest Linux series is now 3.x, not 2.6.x
|
|
It's better under 1.9.3 (sleepy_penguin 3.0.1 was bogus)
|
|
It's better under 1.9.3
|
|
|
|
We can support it fully for a subset of concurrency models where
we have full control over buffering and HTTP/1.1 keepalive
clients.
|
|
This will only be supported for certain concurency models, but
it's probably good enough.
|
|
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.
|
|
This makes things easier to maintain as we add more concurrency
options.
|
|
This allows using IO::Splice.copy_stream from the "io_splice"
RubyGem on recent Linux systems. This also allows users to
disable copy_stream usage entirely and use traditional
response_body.each calls which are compatible with all Rack
servers (to workaround bugs in IO.copy_stream under 1.9.2-p180).
|
|
There's actually no reason we can't have these methods
in Rainbows::Configurator where it's easier to document
nowadays.
|
|
We're now able to configure the number of threads independently
of worker_connections.
|
|
Just the test name is irrelevant
|
|
This is probably friendlier on server resources in the worst
case than XEpollThreadSpawn but may perform worse in the client
client-visible way, too.
|
|
kgio 2.4.0 has some 1.9.3dev fixes which affect us
|
|
Newer versions should be better
|
|
We're changing our default to 1K buffers to save memory. This
should reduce memory usage of idle clients and lower pressure on
the MRI GC. Rails applications using session cookies (the
default) may want to up this to 2K or more.
|
|
Whee! This is going to be awesome.
|
|
Might as well use the latest and greatest.
|
|
Revactor doesn't seem to work under 1.9.3dev, and Revactor is
dead upstream.
|
|
Latest and greatest :D
|
|
New sendfile gem will give us IO#trysendfile.
We might as well use and test the latest and greatest
versions of everything else since thats what users
pull in by default.
|
|
The Cramp::Controller namespace is gone.
|
|
This conflicts with ports clients may automatically use
in the ephemeral range.
This reverts commit c9a7560bb684bbdadb641ebc7597303f38c37d4f.
|
|
This will help prevent us from breaking :pool_size in the
future.
|
|
It's too long especially since XEpollThreadPool is planned :>
|
|
It supports IPv6 and pulls in a better Kgio. Since Unicorn
defaults to ":tcp_nopush => true", we need to flip it back
to false to be compatible with the types of apps Rainbows!
is targetted as.
|
|
ed can do in-place editing portably, unlike sed.
|
|
We can't work around it effectively in the C extension
itself. This requires the latest sleepy_penguin gem.
|
|
It's Linux-only, after all
|
|
Binding to a random port is much easier this way
|
|
Some users never, ever accept uploads, so we should test
for it.
|
|
epoll is Linux-only right now. kqueue probably isn't worth
supporting directly (and even direct epoll support is debatable
given the current GVL situation)
|
|
Edge-triggered epoll concurrency model with blocking accept() in
a (hopefully) native thread. This is recommended over Epoll for
Ruby 1.9 users as it can workaround accept()-scalability issues
on multicore machines.
|
|
We can eliminate the State module to simplify our code
since 1.3.x keeps better track of things.
|
|
chunked Transfer-Encoding is only valid for HTTP/1.1
|
|
Or at least it should :)
|
|
we need to get in the habit of using this more
|
|
Coolio and EventMachine only use level-triggered epoll,
but being Rainbows!, we live on the EDGE!
|
|
This makes content-md5 tests much faster since we
no longer wait for the server to to timeout.
|