Unicorn 4.1.0 - Rack HTTP server for fast clients and Unix

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.

Changes:

  • Rack::Chunked and Rack::ContentLength middlewares are loaded
    by default for RACK_ENV=(development|deployment) users to match
    Rack::Server behavior. As before, use RACK_ENV=none if you want
    fine-grained control of your middleware. This should also
    help users of Rainbows! and Zbatery.

  • CTL characters are now rejected from HTTP header values

  • Exception messages are now filtered for [:cntrl:] characters
    since application/middleware authors may forget to do so

  • Workers will now terminate properly if a SIGQUIT/SIGTERM/SIGINT
    is received while during worker process initialization.

  • close-on-exec is explicitly disabled to future-proof against
    Ruby 2.0 changes [ruby-core:38140]

Changes:

The last-resort timeout mechanism was inaccurate and often
delayed in activation since the 2.0.0 release. It is now fixed
and remains power-efficient in idle situations, especially with
the wakeup reduction in MRI 1.9.3+.

There is also a new document on application timeouts
intended to discourage the reliance on this last-resort
mechanism. It is visible on the web at:

Application Timeouts