unicorn 0.95.3
[unicorn.git] / KNOWN_ISSUES
blob83b35841515b65cb7581ef2c7e2c38d8bd554bbe
1 = Known Issues
3 Occasionally odd {issues}[link:ISSUES.html] arise without a transparent or
4 acceptable solution.  Those issues are documented here.
6 * Rails 2.3.2 bundles its own version of Rack.  This may cause subtle
7   bugs when simultaneously loaded with the system-wide Rack Rubygem
8   which Unicorn depends on.  Upgrading to Rails 2.3.4 (or later) is
9   strongly recommended for all Rails 2.3.x users for this (and security
10   reasons).  Rails 2.2.x series (or before) did not bundle Rack and are
11   should be unnaffected.  If there is any reason which forces your
12   application to use Rails 2.3.2 and you have no other choice, then
13   you may edit your Unicorn gemspec and remove the Rack dependency.
15   ref: http://mid.gmane.org/20091014221552.GA30624@dcvr.yhbt.net
16   Note: the workaround described in the article above only made
17   the issue more subtle and we didn't notice them immediately.
19 * Installing "unicorn" as a system-wide Rubygem and using the
20   {isolate}[http://github.com/jbarnette/isolate] gem may cause issues if
21   you're using any of the bundled application-level libraries in
22   unicorn/app/* (for compatibility with CGI-based applications, Rails <=
23   2.2.2, or ExecCgi).  For now workarounds include:
25   * installing the same version of unicorn as a system-wide Rubygem
26     _and_ isolating unicorn as well.
27   * explicitly setting RUBYLIB or $LOAD_PATH to include any gem path
28     where the unicorn gem is installed (e.g.
29     /usr/lib/ruby/gems/1.8/gems/unicorn-VERSION/lib)
31 * WONTFIX: code reloading and restarts with Sinatra 0.3.x (and likely older
32   versions) apps is broken.  The workaround is to force production
33   mode to disable code reloading as well as disabling "run" in your
34   Sinatra application:
35     set :env, :production
36     set :run, false
37   Since this is no longer an issue with Sinatra 0.9.x apps, this will not be
38   fixed on our end.  Since Unicorn is itself the application launcher, the
39   at_exit handler used in old Sinatra always caused Mongrel to be launched
40   whenever a Unicorn worker was about to exit.
42   Also remember we're capable of replacing the running binary without dropping
43   any connections regardless of framework :)