Hoptoad setup.

Marcin Stecki madsheeppl at gmail.com
Fri Oct 14 03:33:02 EDT 2011


Hi,

In my ror 3.0.10 app Unicorn somehow causes my application to show
errors on staging like it was development environment (with backtrace
and everything) instead of sending them to hoptoad. This is strange -
same app on mongrel shows custom 500 page and sends errors to hoptoad
as expected.

Rails configuration seems to be ok, works on mongrel and passenger.
To lunch my app i'm using pretty basic command:


"bundle exec unicorn_rails -c config/unicorn.rb -D -E staging"



nothing fancy inside the config:


#config/unicorn.rb

rails_env = ENV["RAILS_ENV"] || "production"
user_name = 'my_app_name'
app_path = "/home/#{user_name}/app/current"
shared_path = "/home/#{user_name}/app/shared"

worker_processes rails_env == 'production' ? 6 : 2

listen 9999, :tcp_nopush => true

preload_app true

timeout 30

pid "#{app_path}/tmp/pids/unicorn.my_app_name.pid"

working_directory app_path

user user_name, user_name

stderr_path "#{shared_path}/log/unicorn.stderr.log"
stdout_path "#{shared_path}/log/unicorn.stdout.log"

before_fork do |server, worker|
  if defined?(ActiveRecord::Base)
    ActiveRecord::Base.connection.disconnect!
  end

  old_pid = "#{app_path}/tmp/pids/unicorn.my_app_name.pid.oldbin"
  if File.exists?(old_pid) && server.pid != old_pid
    begin
      Process.kill("QUIT", File.read(old_pid).to_i)
    rescue Errno::ENOENT, Errno::ESRCH
    end
  end
end

after_fork do |server, worker|
  if defined?(ActiveRecord::Base)
    ActiveRecord::Base.establish_connection
  end
end



Any help w'd be appreciated.
Thx, Madsheep.


More information about the mongrel-unicorn mailing list