<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<id>http://unicorn.bogomips.org/NEWS.atom.xml</id>
<title>Unicorn news</title>
<subtitle>Rack HTTP server for fast clients and Unix</subtitle>
<link rel="alternate" type="text/html" href="http://unicorn.bogomips.org/NEWS.html"/>
<updated>2012-04-29T07:04:57Z</updated>
<entry>
<title>unicorn 4.3.1 - shutdown() fixes</title>
<updated>2012-04-29T07:04:57Z</updated>
<published>2012-04-29T07:04:57Z</published>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<link rel="alternate" type="text/html" href="http://bogomips.org/unicorn.git/tag/?id=v4.3.1"/>
<id>http://bogomips.org/unicorn.git/tag/?id=v4.3.1</id>
<content type="text">* Call shutdown(2) if a client EOFs on us during upload.
  We can avoid holding a socket open if the Rack app forked a
  process during uploads.

* ignore potential Errno::ENOTCONN errors (from shutdown(2)).
  Even on LANs, connections can occasionally be accept()-ed but
  be unusable afterwards.

Thanks to Joel Nimety &lt;jnimety@continuity.net&gt;,
Matt Smith &lt;matt@nearapogee.com&gt; and George &lt;lists@southernohio.net&gt;
on the mongrel-unicorn@rubyforge.org mailing list for their
feedback and testing for this release.</content>
<content type="xhtml">
<pre>* Call shutdown(2) if a client EOFs on us during upload.
  We can avoid holding a socket open if the Rack app forked a
  process during uploads.

* ignore potential Errno::ENOTCONN errors (from shutdown(2)).
  Even on LANs, connections can occasionally be accept()-ed but
  be unusable afterwards.

Thanks to Joel Nimety &lt;jnimety@continuity.net&gt;,
Matt Smith &lt;matt@nearapogee.com&gt; and George &lt;lists@southernohio.net&gt;
on the mongrel-unicorn@rubyforge.org mailing list for their
feedback and testing for this release.
</pre>
</content>
</entry>
<entry>
<title>unicorn 4.3.0 - minor fixes and updates</title>
<updated>2012-04-17T21:51:21Z</updated>
<published>2012-04-17T21:51:21Z</published>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<link rel="alternate" type="text/html" href="http://bogomips.org/unicorn.git/tag/?id=v4.3.0"/>
<id>http://bogomips.org/unicorn.git/tag/?id=v4.3.0</id>
<content type="text">* 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.</content>
<content type="xhtml">
<pre>* 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.
</pre>
</content>
</entry>
<entry>
<title>unicorn 4.2.1 - minor fix and doc updates</title>
<updated>2012-03-26T21:39:51Z</updated>
<published>2012-03-26T21:39:51Z</published>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<link rel="alternate" type="text/html" href="http://bogomips.org/unicorn.git/tag/?id=v4.2.1"/>
<id>http://bogomips.org/unicorn.git/tag/?id=v4.2.1</id>
<content type="text">* Stale pid files are detected if a pid is recycled by processes
  belonging to another user, thanks to Graham Bleach.
* nginx example config updates thanks to to Eike Herzbach.
* KNOWN_ISSUES now documents issues with apps/libs that install
  conflicting signal handlers.</content>
<content type="xhtml">
<pre>* Stale pid files are detected if a pid is recycled by processes
  belonging to another user, thanks to Graham Bleach.
* nginx example config updates thanks to to Eike Herzbach.
* KNOWN_ISSUES now documents issues with apps/libs that install
  conflicting signal handlers.
</pre>
</content>
</entry>
<entry>
<title>unicorn 4.2.0</title>
<updated>2012-01-28T09:18:39Z</updated>
<published>2012-01-28T09:18:39Z</published>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<link rel="alternate" type="text/html" href="http://bogomips.org/unicorn.git/tag/?id=v4.2.0"/>
<id>http://bogomips.org/unicorn.git/tag/?id=v4.2.0</id>
<content type="text">The GPLv3 is now an option to the Unicorn license.  The existing GPLv2
and Ruby-only terms will always remain options, but the GPLv3 is
preferred.

Daemonization is correctly detected on all terminals for development
use (Brian P O'Rourke).

Unicorn::OobGC respects applications that disable GC entirely
during application dispatch (Yuichi Tateno).

Many test fixes for OpenBSD, which may help other *BSDs, too.
(Jeremy Evans).

There is now _optional_ SSL support (via the "kgio-monkey"
RubyGem).  On fast, secure LANs, SSL is only intended for
detecting data corruption that weak TCP checksums cannot detect.
Our SSL support is remains unaudited by security experts.

There are also some minor bugfixes and documentation
improvements.

Ruby 2.0.0dev also has a copy-on-write friendly GC which can save memory
when combined with "preload_app true", so if you're in the mood, start
testing Unicorn with the latest Ruby!</content>
<content type="xhtml">
<pre>The GPLv3 is now an option to the Unicorn license.  The existing GPLv2
and Ruby-only terms will always remain options, but the GPLv3 is
preferred.

Daemonization is correctly detected on all terminals for development
use (Brian P O'Rourke).

Unicorn::OobGC respects applications that disable GC entirely
during application dispatch (Yuichi Tateno).

Many test fixes for OpenBSD, which may help other *BSDs, too.
(Jeremy Evans).

There is now _optional_ SSL support (via the "kgio-monkey"
RubyGem).  On fast, secure LANs, SSL is only intended for
detecting data corruption that weak TCP checksums cannot detect.
Our SSL support is remains unaudited by security experts.

There are also some minor bugfixes and documentation
improvements.

Ruby 2.0.0dev also has a copy-on-write friendly GC which can save memory
when combined with "preload_app true", so if you're in the mood, start
testing Unicorn with the latest Ruby!
</pre>
</content>
</entry>
<entry>
<title>unicorn 4.1.1 - fix last-resort timeout accuracy</title>
<updated>2011-08-25T21:30:11Z</updated>
<published>2011-08-25T21:30:11Z</published>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<link rel="alternate" type="text/html" href="http://bogomips.org/unicorn.git/tag/?id=v4.1.1"/>
<id>http://bogomips.org/unicorn.git/tag/?id=v4.1.1</id>
<content type="text">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:

  http://unicorn.bogomips.org/Application_Timeouts.html</content>
<content type="xhtml">
<pre>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:

  http://unicorn.bogomips.org/Application_Timeouts.html
</pre>
</content>
</entry>
<entry>
<title>unicorn 4.1.0 - small updates and fixes</title>
<updated>2011-08-20T00:33:13Z</updated>
<published>2011-08-20T00:33:13Z</published>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<link rel="alternate" type="text/html" href="http://bogomips.org/unicorn.git/tag/?id=v4.1.0"/>
<id>http://bogomips.org/unicorn.git/tag/?id=v4.1.0</id>
<content type="text">* 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]</content>
<content type="xhtml">
<pre>* 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]
</pre>
</content>
</entry>
<entry>
<title>unicorn 4.0.1 - regression bugfixes</title>
<updated>2011-06-29T18:59:07Z</updated>
<published>2011-06-29T18:59:07Z</published>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<link rel="alternate" type="text/html" href="http://bogomips.org/unicorn.git/tag/?id=v4.0.1"/>
<id>http://bogomips.org/unicorn.git/tag/?id=v4.0.1</id>
<content type="text">This release fixes things for users of per-worker "listen"
directives in the after_fork hook.  Thanks to ghazel@gmail.com
for reporting the bug.

The "timeout" configurator directive is now truncated to
0x7ffffffe seconds to prevent overflow when calling
IO.select.</content>
<content type="xhtml">
<pre>This release fixes things for users of per-worker "listen"
directives in the after_fork hook.  Thanks to ghazel@gmail.com
for reporting the bug.

The "timeout" configurator directive is now truncated to
0x7ffffffe seconds to prevent overflow when calling
IO.select.
</pre>
</content>
</entry>
<entry>
<title>unicorn 4.0.0 - for mythical hardware!</title>
<updated>2011-06-27T09:05:43Z</updated>
<published>2011-06-27T09:05:43Z</published>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<link rel="alternate" type="text/html" href="http://bogomips.org/unicorn.git/tag/?id=v4.0.0"/>
<id>http://bogomips.org/unicorn.git/tag/?id=v4.0.0</id>
<content type="text">A single Unicorn instance may manage more than 1024 workers
without needing privileges to modify resource limits.  As a
result of this, the "raindrops"[1] gem/library is now a required
dependency.

TCP socket defaults now favor low latency to mimic UNIX domain
socket behavior (tcp_nodelay: true, tcp_nopush: false).  This
hurts throughput, users who want to favor throughput should
specify "tcp_nodelay: false, tcp_nopush: true" in the listen
directive.

Error logging is more consistent and all lines should be
formatted correctly in backtraces.  This may break the
behavior of some log parsers.

The call stack is smaller and thus easier to examine backtraces
when debugging Rack applications.

There are some internal API changes and cleanups, but none that
affect applications designed for Rack.  See "git log v3.7.0.."
for details.

For users who cannot install kgio[2] or raindrops, Unicorn 1.1.x
remains supported indefinitely.  Unicorn 3.x will remain
supported if there is demand.  We expect raindrops to introduce
fewer portability problems than kgio did, however.

[1] http://raindrops.bogomips.org/
[2] http://bogomips.org/kgio/</content>
<content type="xhtml">
<pre>A single Unicorn instance may manage more than 1024 workers
without needing privileges to modify resource limits.  As a
result of this, the "raindrops"[1] gem/library is now a required
dependency.

TCP socket defaults now favor low latency to mimic UNIX domain
socket behavior (tcp_nodelay: true, tcp_nopush: false).  This
hurts throughput, users who want to favor throughput should
specify "tcp_nodelay: false, tcp_nopush: true" in the listen
directive.

Error logging is more consistent and all lines should be
formatted correctly in backtraces.  This may break the
behavior of some log parsers.

The call stack is smaller and thus easier to examine backtraces
when debugging Rack applications.

There are some internal API changes and cleanups, but none that
affect applications designed for Rack.  See "git log v3.7.0.."
for details.

For users who cannot install kgio[2] or raindrops, Unicorn 1.1.x
remains supported indefinitely.  Unicorn 3.x will remain
supported if there is demand.  We expect raindrops to introduce
fewer portability problems than kgio did, however.

[1] http://raindrops.bogomips.org/
[2] http://bogomips.org/kgio/
</pre>
</content>
</entry>
<entry>
<title>unicorn 3.7.0 - minor feature update</title>
<updated>2011-06-09T20:51:28Z</updated>
<published>2011-06-09T20:51:28Z</published>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<link rel="alternate" type="text/html" href="http://bogomips.org/unicorn.git/tag/?id=v3.7.0"/>
<id>http://bogomips.org/unicorn.git/tag/?id=v3.7.0</id>
<content type="text">* miscellaneous documentation improvements
* return 414 (instead of 400) for Request-URI Too Long
* strip leading and trailing linear whitespace in header values

User-visible improvements meant for Rainbows! users:

* add :ipv6only "listen" option (same as nginx)</content>
<content type="xhtml">
<pre>* miscellaneous documentation improvements
* return 414 (instead of 400) for Request-URI Too Long
* strip leading and trailing linear whitespace in header values

User-visible improvements meant for Rainbows! users:

* add :ipv6only "listen" option (same as nginx)
</pre>
</content>
</entry>
<entry>
<title>unicorn 3.6.2 - fix Unicorn::OobGC module</title>
<updated>2011-04-30T06:40:22Z</updated>
<published>2011-04-30T06:40:22Z</published>
<author>
<name>Eric Wong</name>
<email>normalperson@yhbt.net</email>
</author>
<link rel="alternate" type="text/html" href="http://bogomips.org/unicorn.git/tag/?id=v3.6.2"/>
<id>http://bogomips.org/unicorn.git/tag/?id=v3.6.2</id>
<content type="text">The optional Unicorn::OobGC module is reimplemented to fix
breakage that appeared in v3.3.1.  There are also minor
documentation updates, but no code changes as of 3.6.1 for
non-OobGC users.

There is also a v1.1.7 release to fix the same OobGC breakage
that appeared for 1.1.x users in the v1.1.6 release.</content>
<content type="xhtml">
<pre>The optional Unicorn::OobGC module is reimplemented to fix
breakage that appeared in v3.3.1.  There are also minor
documentation updates, but no code changes as of 3.6.1 for
non-OobGC users.

There is also a v1.1.7 release to fix the same OobGC breakage
that appeared for 1.1.x users in the v1.1.6 release.
</pre>
</content>
</entry>
</feed>

