unicorn Ruby/Rack server user+dev discussion/patches/pulls/bugs/help
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [ANN] unicorn 0.93.4 - *BSD stdio compatibility
@ 2009-10-27  8:56  6% Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2009-10-27  8:56 UTC (permalink / raw)
  To: mongrel-unicorn

Unicorn is a 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://git.bogomips.org/unicorn.git

Changes:

This release mainly works around BSD stdio compatibility issues
that affect at least FreeBSD and OS X.  While this issues was
documented and fixed in [ruby-core:26300][1], no production
release of MRI 1.8 has it, and users typically upgrade MRI more
slowly than gems.  This issue does NOT affect 1.9 users.  Thanks
to Vadim Spivak for reporting and testing this issue and Andrey
Stikheev for the fix.

Additionally there are small documentation bits, one error
handling improvement, and one minor change that should improve
reliability of signal delivery.

Andrey Stikheev (1):
      workaround FreeBSD/OSX IO bug for large uploads

Eric Wong (7):
      DESIGN: address concerns about on-demand and thundering herd
      README: alter reply conventions for the mailing list
      configurator: stop testing for non-portable listens
      KNOWN_ISSUES: document Rack gem issue w/Rails 2.3.2
      stop continually resends signals during shutdowns
      add news bodies to site NEWS.atom.xml
      configurator: fix broken example in RDoc

Suraj N. Kurapati (1):
      show configuration file path in errors instead of '(eval)'

[1] http://redmine.ruby-lang.org/issues/show/2267
-- 
Eric Wong

^ permalink raw reply	[relevance 6%]

* [PATCH] KNOWN_ISSUES: document Rack gem issue w/Rails 2.3.2
  @ 2009-10-16 20:57  7% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2009-10-16 20:57 UTC (permalink / raw)
  To: mongrel-unicorn

In short: upgrade to Rails 2.3.4 (or later)

ref: http://mid.gmane.org/20091014221552.GA30624@dcvr.yhbt.net
Note: the workaround described in the article above only made
the issue more subtle and we didn't notice them immediately.
---

  Eric Wong <normalperson@yhbt.net> wrote:
  > Hi all,
  > 
  > I just had a user on Rails v2.3.2 that had trouble[1] with the
  > out-of-the-box unicorn_rails, but was worked around by using the
  > following RAILS_ROOT/config.ru file with plain "unicorn" and
  > manually setting RAILS_ENV in the shell environment
  > 
  >   require 'config/environment'
  >   use Rails::Rack::LogTailer
  >   map("/") do
  >     use Rails::Rack::Static
  >     run ActionController::Dispatcher.new
  >   end
  > 
  > script/server + WEBrick worked out-of-the-box, as well.
  > 
  > Oddly, the same config.ru file does not work with "unicorn_rails",
  > either (even when the "config.ru" file is explicitly specified);
  > only with "unicorn".
  > 
  > So I'm a bit perplexed...
  > 
  > 
  > [1] - by "trouble", I mean the app became very subtly broken.  Query
  > parameters (it was a GET request) appeared to be handled correctly, but
  > the app was not returning the same results.  I looked briefly at the
  > app and noticed *something* was a bit suspicious:
  > 
  >     -------------- app/controllers/foo_controller.rb -------------
  >     class FooController < ApplicationController
  >       def index
  >         all_params = some_weird_params_generated
  >         results = BarController.new.action(all_params)
  >       end
  >     end
  >     -------------- app/controllers/bar_controller.rb -------------
  >     class BarController < ApplicationController
  >       def action(all_params)
  >         do_something
  >       end
  >     end
  >     --------------------------------------------------------------
  > 
  > That is, it creates a new controller from within one controller inside
  > one action.  Note that I'm not 100% certain this responsible for the
  > breakage we were seeing, but it certainly does look like suspicious
  > Rails code to me.
  > 
  > 
  > I haven't decided if I'll spend time to fix/debug this, but at least
  > I'll document it here if somebody wants to look into it further.
 KNOWN_ISSUES    |   13 +++++++++++++
 unicorn.gemspec |    4 ++++
 2 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/KNOWN_ISSUES b/KNOWN_ISSUES
index 436997d..979ac9d 100644
--- a/KNOWN_ISSUES
+++ b/KNOWN_ISSUES
@@ -1,5 +1,18 @@
 = Known Issues
 
+* Rails 2.3.2 bundles its own version of Rack.  This may cause subtle
+  bugs when simultaneously loaded with the system-wide Rack Rubygem
+  which Unicorn depends on.  Upgrading to Rails 2.3.4 (or later) is
+  strongly recommended for all Rails 2.3.x users for this (and security
+  reasons).  Rails 2.2.x series (or before) did not bundle Rack and are
+  should be unnaffected.  If there is any reason which forces your
+  application to use Rails 2.3.2 and you have no other choice, then
+  you may edit your Unicorn gemspec and remove the Rack dependency.
+
+  ref: http://mid.gmane.org/20091014221552.GA30624@dcvr.yhbt.net
+  Note: the workaround described in the article above only made
+  the issue more subtle and we didn't notice them immediately.
+
 * Installing "unicorn" as a system-wide Rubygem and using the
   {isolate}[http://github.com/jbarnette/isolate] gem may cause issues if
   you're using any of the bundled application-level libraries in
diff --git a/unicorn.gemspec b/unicorn.gemspec
index c5b4422..063b313 100644
--- a/unicorn.gemspec
+++ b/unicorn.gemspec
@@ -43,6 +43,10 @@ Gem::Specification.new do |s|
 
   s.test_files = test_files
 
+  # for people that are absolutely stuck on Rails 2.3.2 and can't
+  # up/downgrade to any other version, the Rack dependency may be
+  # commented out.  Nevertheless, upgrading to Rails 2.3.4 or later is
+  # *strongly* recommended for security reasons.
   s.add_dependency(%q<rack>)
 
   # s.licenses = %w(GPLv2 Ruby) # licenses= method is not in older Rubygems
-- 
Eric Wong

^ permalink raw reply related	[relevance 7%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2009-10-14 22:15     weird unicorn_rails issue Eric Wong
2009-10-16 20:57  7% ` [PATCH] KNOWN_ISSUES: document Rack gem issue w/Rails 2.3.2 Eric Wong
2009-10-27  8:56  6% [ANN] unicorn 0.93.4 - *BSD stdio compatibility Eric Wong

Code repositories for project(s) associated with this public inbox

	https://yhbt.net/unicorn.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).