[Mongrel] cluster::restart doesn't wait for stop before starting

Andrew Vit andrew at avit.ca
Sat Oct 27 20:40:01 EDT 2007


I'm calling restart from my Capistrano task. I have this in my deploy.rb file:

# until mongrel_cluster updates to cap2...
namespace :deploy do
  task :start,    :roles => :app do start_mongrel_cluster end
  task :stop,     :roles => :app do stop_mongrel_cluster end
  task :restart,  :roles => :app do restart_mongrel_cluster end

(What's the scoop on mongrel_cluster with Capistrano 2 by the way?)

The command that's executed with a restart is:

sudo mongrel_rails cluster::restart -C /etc/mongrel_cluster/staging.yml

 ** [out ::] stopping port 8010
 ** [out ::] already started port 8010

At this point the server is not running -- I conclude that it has been 
stopped successfully. Now if I call on "start" it starts properly 
without an "already started" warning.

This happens intermittently. Sometimes it restarts fine. If I call 
stop/start manually, it works because I guess I'm leaving enough time 
in between for it to shut down.

Any thoughts on this?

capistrano 2.0.0
mongrel 1.0.1
mongrel_rails 1.0.2

--Andrew Vit

More information about the Mongrel-users mailing list