From 19f798301ac1884f423640efafb277b071bb5439 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 29 Jun 2011 07:19:32 +0000 Subject: fix per-worker listen directive in after_fork hook The testcase for this was broken, too, so we didn't notice this :< Reported-by: ghazel@gmail.com on the Rainbows! mailing list, http://mid.gmane.org/BANLkTi=oQXK5Casq9SuGD3edeUrDPvRm3A@mail.gmail.com --- lib/unicorn/http_server.rb | 3 ++- test/exec/test_exec.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/unicorn/http_server.rb b/lib/unicorn/http_server.rb index 02ba965..78d80b4 100644 --- a/lib/unicorn/http_server.rb +++ b/lib/unicorn/http_server.rb @@ -453,7 +453,7 @@ class Unicorn::HttpServer def after_fork_internal @ready_pipe.close if @ready_pipe Unicorn::Configurator::RACKUP.clear - @ready_pipe = @init_listeners = @config = @before_exec = @before_fork = nil + @ready_pipe = @init_listeners = @before_exec = @before_fork = nil srand # http://redmine.ruby-lang.org/issues/4338 @@ -545,6 +545,7 @@ class Unicorn::HttpServer after_fork.call(self, worker) # can drop perms worker.user(*user) if user.kind_of?(Array) && ! worker.switched self.timeout /= 2.0 # halve it for select() + @config = nil build_app! unless preload_app end diff --git a/test/exec/test_exec.rb b/test/exec/test_exec.rb index 0f6b083..8c33457 100644 --- a/test/exec/test_exec.rb +++ b/test/exec/test_exec.rb @@ -516,7 +516,7 @@ EOF File.unlink(tmp.path) ucfg = Tempfile.new('unicorn_test_config') ucfg.syswrite("listen '#@addr:#@port'\n") - ucfg.syswrite("before_fork { |s,w|\n") + ucfg.syswrite("after_fork { |s,w|\n") ucfg.syswrite(" s.listen('#{tmp.path}', :backlog => 5, :sndbuf => 8192)\n") ucfg.syswrite(" s.listen('#@addr:#{port2}', :rcvbuf => 8192)\n") ucfg.syswrite("\n}\n") -- cgit v1.2.3-24-ge0c7