- Jamis
On Sep 26, 2007, at 12:43 PM, wolfmanjm wrote:
Hey Jamis, that worked for my hanging put problem! doesn't hang anymore. On Sep 26, 9:24 am, Jamis Buck <[EMAIL PROTECTED]> wrote:Yeah, I strongly suspect you're being bitten by a put bug, which I've never been able to duplicate, but which I strong suspect is related to some bad design decisions in Net::SSH and Net::SFTP. I'm very hopeful that the new Net::SSH and Net::SFTP rewrites will help this...but that doesn't help you right now. What if you do this at the top of your deploy.rb: set :synchronous_connect, true That flag was added to help some people who reported the upload- hanging issue, and it seemed to work in some cases. - Jamis On Sep 26, 2007, at 10:16 AM, Jon Rosebaugh wrote:On 9/26/07, Jamis Buck <[EMAIL PROTECTED]> wrote:I suspect you're being bitten by the "put bug" (which is really a bug in Net::SSH somewhere). Do you have a gateway configured in your caprecipes anywhere?Nope, here is our complete cap setup, with urls altered for privacy:I deploy by running cap <target> deploy. e.g., "cap public deploy" forpublic server, which is where we're having the problem.Capfile: load 'deploy' if respond_to?(:namespace) # cap2 differentiator require 'lib/extensions/mongrel_recipes' load 'config/deploy'config/deploy.rb: set :application, "nexus" set :repository, "http://svn/project_repository/branches/0.5" set :deploy_via, :checkout set :user, "deploy" set(:mongrel_conf) { "#{current_path}/config/mongrel_cluster.yml" } set(:deploy_to) { "/u/apps/#{application}"}task :build do role :web, "buildserver" role :app, "buildserver" role :db, "buildserver" set :application, "nexus_build" set :repository, "http://svn/project_repository/trunk/" set :mongrel_conf, "#{current_path}/config/ mongrel_build_cluster.yml" endtask :mirror do # this one is an exact copy of the public server role :web, "buildmirror" role :app, "buildmirror" role :db, "buildmirror" endtask :public do role :web, "publicserver.outsideourfirewall.com" role :app, "publicserver.outsideourfirewall.com" role :db, "publicserver.outsideourfirewall.com" set :deploy_via, :copy set :copy_strategy, :checkout set :copy_compression, :zip endnamespace :deploy do task :migrate do # this is deliberately empty, since we don't do migrations. endendlib/extensions/mongrel_recipes..rb: Capistrano::Configuration.instance(:must_exist).load do depend :remote, :gem, "mongrel_cluster", ">=0.2.1" after "deploy:setup", "mongrel:cluster:setup"set(:mongrel_servers, 3) set(:mongrel_port) { abort 'Please configure the mongrel_port variable before deploying' } set(:mongrel_address, "127.0.0.1") set(:mongrel_environment, "production") set(:mongrel_user) { user } set(:mongrel_group) { user } set(:mongrel_prefix, nil) set(:mongrel_num_procs, 3) set(:mongrel_conf) { File.join(shared_path, 'config', 'mongrel_cluster.yml') } set(:mongrel_startup_file) { File.join('/etc', 'mongrel_cluster', "#{application}.yml") }namespace :mongrel do namespace :cluster do desc <<-DESC Configure Mongrel processes on the app server. This uses the :use_sudo variable to determine whether to use sudo or not. By default, :use_sudo is set to true. DESC task :setup, :roles => :app do argv = [] argv << "mongrel_rails cluster::configure" argv << "-N #{mongrel_servers.to_s}" argv << "-p #{mongrel_port.to_s}" argv << "-e #{mongrel_environment}" argv << "-a #{mongrel_address}" argv << "-c #{current_path}" argv << "-C #{mongrel_conf}" argv << "-n #{mongrel_num_procs}" argv << "--user #{mongrel_user}" if mongrel_user argv << "--group #{mongrel_group}" if mongrel_group argv << "--prefix #{mongrel_prefix}" if mongrel_prefix cmd = argv.join " " # Try to create shared/config sudo "mkdir -p #{File.dirname(mongrel_conf)}" # sudo the command to generate a shared/config/ mongrel_cluster.yml sudo cmd # Try to create /etc/mongrel_cluster sudo "mkdir -p #{File.dirname(mongrel_startup_file)}" sudo <<-CMD if [ ! -e #{mongrel_startup_file} ] ; then ln -s #{mongrel_conf} #{mongrel_startup_file} ; fi CMD enddesc <<-DESC Start Mongrel processes on the app server. This uses the :use_sudo variable to determine whether to use sudo or not. By default, :use_sudo is set to true. DESC task :start, :roles => :app do sudo "mongrel_rails cluster::start -C #{mongrel_conf}" enddesc <<-DESCRestart the Mongrel processes on the app server by starting andstopping the cluster. This uses the :use_sudo variable to determine whether to use sudo or not. By default, :use_sudo is set to true. DESC task :restart, :roles => :app do sudo "mongrel_rails cluster::restart -C #{mongrel_conf}" enddesc <<-DESC Stop the Mongrel processes on the app server. This uses the :use_sudo variable to determine whether to use sudo or not. By default, :use_sudo is set to true. DESC task :stop, :roles => :app do sudo "mongrel_rails cluster::stop -f -C #{mongrel_conf}" enddesc <<-DESC Apply a new Mongrel configuration. DESC task :reset_config, :roles => :app do mongrel.cluster.stop sudo "rm -f #{mongrel_conf}" mongrel.cluster.setup mongrel.cluster.start end end end# Override standard deploy. namespace :deploy do desc <<-DESC Start the Mongrel processes on the app server by calling mongrel:cluster:start DESC task :start, :roles => :app do mongrel.cluster.start enddesc <<-DESC Restart the Mongrel processes on the app server by calling mongrel:cluster:restart DESC task :restart, :roles => :app do mongrel.cluster.restart enddesc <<-DESC Stop the Mongrel processes on the app server by calling mongrel:cluster:stop DESC task :stop, :roles => :app do mongrel.cluster.stop end end endsmime.p7s 3KDownload--~--~---------~--~----~------------~-------~--~----~To unsubscribe from this group, send email to capistrano- [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/ group/capistrano-~----------~----~----~----~------~----~------~--~---
smime.p7s
Description: S/MIME cryptographic signature
