Ho uno strano problema nella stadiazione dopo la migrazione verso l'unicorno da parte del passeggero.unicorno si blocca dicendo Gemme rinfrescanti
Ho configurato unicorno per ambiente di sviluppo e di staging. sta lavorando allo sviluppo ma non in scena. In fase di sviluppo ascolta l'8080 dove, come nella messa in scena, ascolta un socket unix. Questo farà qualche differenza? Soprattutto nella produzione kinda env?
Questo è ciò che accade quando faccio funzionare nella messa in scena
- Ci vuole quasi il 100% della CPU durante l'avvio
- a volte si deposita verso il basso e sono in grado di usarlo
- * Ma la maggior parte del volte pende ** e ho dovuto ucciderlo.
ho registrato una domanda riguardo a questo problema click here
Questo è quello che vedo in unicorn.stderr.log
I, [2011-08-26T09:02:53.324286 #5026] INFO -- : unlinking existing socket=/home/krishnaprasad/project_name/tmp/sockets/unicorn.sock
I, [2011-08-26T09:02:53.324502 #5026] INFO -- : listening on addr=/home/krishnaprasad/project_name/tmp/sockets/unicorn.sock fd=3
I, [2011-08-26T09:02:53.324860 #5026] INFO -- : Refreshing Gem list
perché ci si tenta di aggiornare le gemme? c'è un modo per evitarlo nel file di configurazione?
questo è quello che ho in config/unicorn_staging.rb
# unicorn_rails -c /config/unicorn_staging.rb -E staging -D
rails_env = 'staging'
working_directory "/home/krishnaprasad/Projects/project_name"
worker_processes 1
preload_app true
timeout 90
rails_root = "/home/krishnaprasad/Projects/project_name"
listen "#{rails_root}/tmp/sockets/unicorn.sock", :backlog => 2048
pid "#{rails_root}/tmp/pids/unicorn.pid"
stderr_path "#{rails_root}/log/unicorn.log"
stdout_path "#{rails_root}/log/unicorn.log"
GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=)
before_fork do |server, worker|
ActiveRecord::Base.connection.disconnect!
old_pid = "#{Rails.root}/tmp/pids/unicorn.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
# someone else did our job for us
end
end
end
after_fork do |server, worker|
ActiveRecord::Base.establish_connection
end
Qualsiasi aiuto molto apprezzato. Grazie in anticipo
Hai mai capito questo? Ho avuto lo stesso problema. – David
ho rimosso questa riga e l'ho trovata funzionante ma è ancora lenta after_fork do | server, worker | ActiveRecord :: Base.establish_connection fine –
Sembra che la rimozione di questa linea causi problemi con gli handle di database condivisi nei sottoprocessi dell'unicorno. Ho finito per non essere in grado di eseguire Unicorn in modalità daemon con l'app di precaricamento. Una volta disabilitata l'app di precaricamento, ha smesso di causare problemi. – David