Andrew Vit
2007-Oct-28 00:40 UTC
[Mongrel] cluster::restart doesn''t wait for stop before starting
Hi, 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 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 :: 208.75.84.228] stopping port 8010 ** [out :: 208.75.84.228] 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
Zachary Powell
2007-Oct-28 13:50 UTC
[Mongrel] cluster::restart doesn''t wait for stop before starting
It would be good if it were redesigned to listen for the mongrel to finish before starting it again, every time I stop our front end mongrels one or two of them don''t stop quick enough (there are a lot of 1/2-1 sec pages) and i''m pressing up/enter/up/enter/up/enter to start them up again as fast as possible. (anyway, what i meant to add was its not a Capistrano issue alone) On 10/27/07, Andrew Vit <andrew at avit.ca> wrote:> > Hi, > > I''m calling restart from my Capistrano task. I have this in my deploy.rbfile: > > # 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 > 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 :: 208.75.84.228] stopping port 8010 > ** [out :: 208.75.84.228] 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 > > > _______________________________________________ > Mongrel-users mailing list > Mongrel-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/mongrel-users/attachments/20071028/ff6d79a0/attachment.html
Dave Cheney
2007-Oct-28 13:57 UTC
[Mongrel] cluster::restart doesn''t wait for stop before starting
We notice this a lot in our environment because some mongrels in the cluster are assigned to handle image magick tasks and can take a while to acknowledge the TERM signal. From my understanding mongrel_rails cluster::restart sends a TERM to each mongel, which causes it to wait for the currently processing request to finish, then closes the connections of the other requests outstanding. If this doesn''t happen straight away then you''ll get the already started message. The solution to me would seam to give cluster::restart an optional delay parameter so those slow mongrels can catch up. Cheers Dave On 28/10/2007, at 11:40 AM, Andrew Vit wrote:> Hi, > > 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 > 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 :: 208.75.84.228] stopping port 8010 > ** [out :: 208.75.84.228] 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 > > > _______________________________________________ > Mongrel-users mailing list > Mongrel-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-users
Possibly Parallel Threads
- what is the correct way to stop/start a mongrel instance using monit with mongrel cluster
- mongrel_cluster-0.1.1: the bird dog (capistrano support!)
- Capistrano mongrel recipes and /usr/local/bin
- Setup with Apache 2.2 proxy balancer : timeout during uploads
- can not delete pid fils when stopping mongrel_cluster