Files | Admin

Notes:

Release Name: 4.3.0

Notes:
unicorn 4.3.0 - minor fixes and updates

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://bogomips.org/unicorn.git
* http://unicorn.bogomips.org/NEWS.atom.xml

Changes:

* PATH_INFO (aka REQUEST_PATH) increased to 4096 (from 1024).
  This allows requests with longer path components and matches
  the system PATH_MAX value common to GNU/Linux systems for
  serving filesystem components with long names.

* Apps that fork() (but do not exec()) internally for background
  tasks now indicate the end-of-request immediately after
  writing the Rack response.

Thanks to Hongli Lai, Lawrence Pit, Patrick Wenger and Nuo Yan
for their valuable feedback for this release.



Changes: GIT-VERSION-GEN | 2 +- PHILOSOPHY | 4 ++-- TUNING | 2 +- ext/unicorn_http/global_variables.h | 4 ++-- lib/unicorn/const.rb | 2 +- lib/unicorn/http_server.rb | 1 + lib/unicorn/ssl_client.rb | 5 +++++ lib/unicorn/worker.rb | 4 ++-- t/detach.ru | 11 +++++++++++ t/sslgen.sh | 8 ++++---- t/t0021-process_detach.sh | 29 +++++++++++++++++++++++++++++ 11 files changed, 59 insertions(+), 13 deletions(-) commit 8c1aff1e6335f8a55723907e2661dcb09ea16205 Author: Eric Wong Date: Tue Apr 17 21:32:07 2012 +0000 unicorn 4.3.0 - minor fixes and updates * PATH_INFO (aka REQUEST_PATH) increased to 4096 (from 1024). This allows requests with longer path components and matches the system PATH_MAX value common to GNU/Linux systems for serving filesystem components with long names. * Apps that fork() (but do not exec()) internally for background tasks now indicate the end-of-request immediately after writing the Rack response. Thanks to Hongli Lai, Lawrence Pit, Patrick Wenger and Nuo Yan for their valuable feedback for this release. commit e7f5de575b3fd58c65014191c31ed2a59bd05265 Author: Eric Wong Date: Tue Apr 17 21:10:51 2012 +0000 tests: set executable bit on integration shell scripts These should be made executable for ease-of-understanding and consistency, regardless of whether we actually execute them. commit 7eccef471a609c87281bb90d9d3b3d7a7b35709e Author: Eric Wong Date: Thu Apr 12 07:40:46 2012 +0000 http: increase REQUEST_PATH maximum length to 4K The previous REQUEST_PATH limit of 1024 is relatively small and some users encounter problems with long URLs. 4K is a common limit for PATH_MAX on modern GNU/Linux systems and REQUEST_PATH is likely to translate to a filesystem path name. Thanks to Nuo Yan and Lawrence Pit for their feedback on this issue. ref: http://mid.gmane.org/CB935F19-72B8-4EC2-8A1D-5084B37C09F2@gmail.com commit b26d3e2c4387707ca958cd9c63c213fc7ac558fa Author: Eric Wong Date: Thu Apr 12 16:46:24 2012 -0700 shutdown client socket for apps which fork in background Previously we relied on implicit socket shutdown() from the close() syscall. However, some Rack applications fork() (without calling exec()), creating a potentially long-lived reference to the underlying socket in a child process. This ends up causing nginx to wait on the socket shutdown when the child process exits. Calling shutdown() explicitly signals nginx (or whatever client) that the unicorn worker is done with the socket, regardless of the number of FD references to the underlying socket in existence. This was not an issue for applications which exec() since FD_CLOEXEC is always set on the client socket. Thanks to Patrick Wenger for discovering this. Thanks to Hongli Lai for the tip on using shutdown() as is done in Passenger. ref: http://mid.gmane.org/CAOG6bOTseAPbjU5LYchODqjdF3-Ez4+M8jo-D_D2Wq0jkdc4Rw@mail.gmail.com commit d258653745e1c8e8fa13b95b1944729294804946 Author: Eric Wong Date: Thu Apr 12 18:35:03 2012 -0700 t/sslgen.sh: use larger keys for tests This seems required for TLSv1.2 under OpenSSL 1.0.1 commit 12cd717d612fe8170f53f5f8377137e1b41db015 Author: Eric Wong Date: Wed Apr 11 21:38:10 2012 +0000 misc documentation spelling fixes Found via rdoc-spellcheck