Greg Hauptmann
2008-Sep-08 04:35 UTC
reaper is not restarting mongrel with the latest release path?? (but rather an earlier releases path)
Hi, I''ve tracked my "cap deploy" problems down to the fact that (at least with the unix user I''ve created for use with capistrano) when "script/process/reaper" is run, whilst it restarts the ruby process the resulting ruby process itself has a path that reflects the previous "release" path, not the latest one that was put in place as a result of capistrano. Note that the link (created by ln ...etc) is correct, so it seems "cap deploy" did it''s job correctly except that the "reaper" call when it restarts the ruby processes does use the latest "current" path. If I log onto the prod server with this user and manually run "reaper" the same issue occurs. Any ideas? Also, I can''t quite see in the reaper code in rails how it actually repopulates the PID file with the new PID number after a restart? Does mongrel itself do this when it received the "kill -s USR2"? === standard out ===== Macintosh-2:myequity greg$ cap deploy --debug * executing `deploy'' * executing `deploy:update'' ** transaction: start * executing `deploy:update_code'' * executing "svn checkout -q -r85 http://10.1.1.1:3690/svn/myequity/trunk /u/apps/myequity/releases/20080908032908 && (echo 85 > /u/apps/ myequity/releases/20080908032908/REVISION)" Preparing to execute command: svn checkout -q -r85 http://10.1.1.1:3690/svn/myequity/trunk /u/apps/myequity/releases/ 20080908032908 && (echo 85 > /u/apps/myequity/releases/20080908032908/ REVISION) Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] Password: [callagga-NfxQIG+Cct8@public.gmane.org] executing command command finished * executing `deploy:finalize_update'' * executing "chmod -R g+w /u/apps/myequity/releases/20080908032908" Preparing to execute command: chmod -R g+w /u/apps/myequity/releases/ 20080908032908 Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] [callagga-NfxQIG+Cct8@public.gmane.org] executing command command finished * executing "rm -rf /u/apps/myequity/releases/20080908032908/log /u/ apps/myequity/releases/20080908032908/public/system /u/apps/myequity/ releases/20080908032908/tmp/pids &&\n mkdir -p /u/apps/myequity/ releases/20080908032908/public &&\n mkdir -p /u/apps/myequity/ releases/20080908032908/tmp &&\n ln -s /u/apps/myequity/shared/ log /u/apps/myequity/releases/20080908032908/log &&\n ln -s /u/ apps/myequity/shared/system /u/apps/myequity/releases/20080908032908/ public/system &&\n ln -s /u/apps/myequity/shared/pids /u/apps/ myequity/releases/20080908032908/tmp/pids" Preparing to execute command: rm -rf /u/apps/myequity/releases/ 20080908032908/log /u/apps/myequity/releases/20080908032908/public/ system /u/apps/myequity/releases/20080908032908/tmp/pids && mkdir -p /u/apps/myequity/releases/20080908032908/public && mkdir -p /u/apps/myequity/releases/20080908032908/tmp && ln -s /u/apps/myequity/shared/log /u/apps/myequity/releases/ 20080908032908/log && ln -s /u/apps/myequity/shared/system /u/apps/myequity/releases/ 20080908032908/public/system && ln -s /u/apps/myequity/shared/pids /u/apps/myequity/releases/ 20080908032908/tmp/pids Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] [callagga-NfxQIG+Cct8@public.gmane.org] executing command command finished * executing "find /u/apps/myequity/releases/20080908032908/public/ images /u/apps/myequity/releases/20080908032908/public/stylesheets /u/ apps/myequity/releases/20080908032908/public/javascripts -exec touch - t 200809080329.22 {} '';''; true" Preparing to execute command: find /u/apps/myequity/releases/ 20080908032908/public/images /u/apps/myequity/releases/20080908032908/ public/stylesheets /u/apps/myequity/releases/20080908032908/public/ javascripts -exec touch -t 200809080329.22 {} '';''; true Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] [callagga-NfxQIG+Cct8@public.gmane.org] executing command command finished * executing `deploy:symlink'' * executing "rm -f /u/apps/myequity/current && ln -s /u/apps/ myequity/releases/20080908032908 /u/apps/myequity/current" Preparing to execute command: rm -f /u/apps/myequity/current && ln -s / u/apps/myequity/releases/20080908032908 /u/apps/myequity/current Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] [callagga-NfxQIG+Cct8@public.gmane.org] executing command command finished ** transaction: commit * executing `deploy:restart'' * executing "sudo -p ''sudo password: '' -u callagga /u/apps/myequity/ current/script/process/reaper" Preparing to execute command: sudo -p ''sudo password: '' -u callagga /u/ apps/myequity/current/script/process/reaper Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] [callagga-NfxQIG+Cct8@public.gmane.org] executing command *** [err :: callagga-NfxQIG+Cct8@public.gmane.org] ** [out :: callagga-NfxQIG+Cct8@public.gmane.org] Restarting 19776 command finished Macintosh-2:myequity greg$ =================== callagga 20557 2.8 5.3 29928 27112 ? S 13:29 0:03 ruby / usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails start -d -a 0.0.0.0 -p 3001 -P /u/apps/myequity/releases/20080908032044/tmp/pids/ dispatch.3001.pid -e production -c /u/apps/myequity/releases/ 20080908032044 -l /u/apps/myequity/releases/20080908032044/log/ mongrel.log ==================== --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Greg Hauptmann
2008-Sep-08 04:39 UTC
[Mongrel] reaper is not restarting mongrel with the latest release path?? (but rather an earlier releases path)
Hi, I''ve tracked my "cap deploy" problems down to the fact that (at least with the unix user I''ve created for use with capistrano) when "script/process/reaper" is run, whilst it restarts the ruby process the resulting ruby process itself has a path that reflects the previous "release" path, not the latest one that was put in place as a result of capistrano. Note that the link (created by ln ...etc) is correct, so it seems "cap deploy" did it''s job correctly except that the "reaper" call when it restarts the ruby processes does use the latest "current" path. If I log onto the prod server with this user and manually run "reaper" the same issue occurs. Any ideas? Also, I can''t quite see in the reaper code in rails how it actually repopulates the PID file with the new PID number after a restart? Does mongrel itself do this when it received the "kill -s USR2"? === standard out ===== Macintosh-2:myequity greg$ cap deploy --debug * executing `deploy'' * executing `deploy:update'' ** transaction: start * executing `deploy:update_code'' * executing "svn checkout -q -r85 http://10.1.1.1:3690/svn/myequity/trunk /u/apps/myequity/releases/20080908032908 && (echo 85 > /u/apps/ myequity/releases/20080908032908/REVISION)" Preparing to execute command: svn checkout -q -r85 http://10.1.1.1:3690/svn/myequity/trunk /u/apps/myequity/releases/ 20080908032908 && (echo 85 > /u/apps/myequity/releases/20080908032908/ REVISION) Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] Password: [callagga at 10.1.1.1] executing command command finished * executing `deploy:finalize_update'' * executing "chmod -R g+w /u/apps/myequity/releases/20080908032908" Preparing to execute command: chmod -R g+w /u/apps/myequity/releases/ 20080908032908 Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] [callagga at 10.1.1.1] executing command command finished * executing "rm -rf /u/apps/myequity/releases/20080908032908/log /u/ apps/myequity/releases/20080908032908/public/system /u/apps/myequity/ releases/20080908032908/tmp/pids &&\n mkdir -p /u/apps/myequity/ releases/20080908032908/public &&\n mkdir -p /u/apps/myequity/ releases/20080908032908/tmp &&\n ln -s /u/apps/myequity/shared/ log /u/apps/myequity/releases/20080908032908/log &&\n ln -s /u/ apps/myequity/shared/system /u/apps/myequity/releases/20080908032908/ public/system &&\n ln -s /u/apps/myequity/shared/pids /u/apps/ myequity/releases/20080908032908/tmp/pids" Preparing to execute command: rm -rf /u/apps/myequity/releases/ 20080908032908/log /u/apps/myequity/releases/20080908032908/public/ system /u/apps/myequity/releases/20080908032908/tmp/pids && mkdir -p /u/apps/myequity/releases/20080908032908/public && mkdir -p /u/apps/myequity/releases/20080908032908/tmp && ln -s /u/apps/myequity/shared/log /u/apps/myequity/releases/ 20080908032908/log && ln -s /u/apps/myequity/shared/system /u/apps/myequity/releases/ 20080908032908/public/system && ln -s /u/apps/myequity/shared/pids /u/apps/myequity/releases/ 20080908032908/tmp/pids Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] [callagga at 10.1.1.1] executing command command finished * executing "find /u/apps/myequity/releases/20080908032908/public/ images /u/apps/myequity/releases/20080908032908/public/stylesheets /u/ apps/myequity/releases/20080908032908/public/javascripts -exec touch - t 200809080329.22 {} '';''; true" Preparing to execute command: find /u/apps/myequity/releases/ 20080908032908/public/images /u/apps/myequity/releases/20080908032908/ public/stylesheets /u/apps/myequity/releases/20080908032908/public/ javascripts -exec touch -t 200809080329.22 {} '';''; true Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] [callagga at 10.1.1.1] executing command command finished * executing `deploy:symlink'' * executing "rm -f /u/apps/myequity/current && ln -s /u/apps/ myequity/releases/20080908032908 /u/apps/myequity/current" Preparing to execute command: rm -f /u/apps/myequity/current && ln -s / u/apps/myequity/releases/20080908032908 /u/apps/myequity/current Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] [callagga at 10.1.1.1] executing command command finished ** transaction: commit * executing `deploy:restart'' * executing "sudo -p ''sudo password: '' -u callagga /u/apps/myequity/ current/script/process/reaper" Preparing to execute command: sudo -p ''sudo password: '' -u callagga /u/ apps/myequity/current/script/process/reaper Execute ([Yes], No, Abort) ? |y| y servers: ["10.1.1.1"] [callagga at 10.1.1.1] executing command *** [err :: callagga at 10.1.1.1] ** [out :: callagga at 10.1.1.1] Restarting 19776 command finished Macintosh-2:myequity greg$ =================== callagga 20557 2.8 5.3 29928 27112 ? S 13:29 0:03 ruby / usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails start -d -a 0.0.0.0 -p 3001 -P /u/apps/myequity/releases/20080908032044/tmp/pids/ dispatch.3001.pid -e production -c /u/apps/myequity/releases/ 20080908032044 -l /u/apps/myequity/releases/20080908032044/log/ mongrel.log =====================