Unable to find group (Fog::Compute::AWS::NotFound) - ruby-on-rails

Amazon ec2 with rubber deploy error. When i run create staging I got following error.
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/middlewares/expects.rb:10:in response_call': Unable to find group 'Matchimi_Enterprise_production_default' (Fog::Compute::AWS::NotFound)
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/connection.rb:353:inresponse'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/connection.rb:247:in request'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/middlewares/idempotent.rb:12:inerror_call'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/middlewares/base.rb:10:in error_call'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/connection.rb:260:inrescue in request'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/connection.rb:220:in request'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/middlewares/idempotent.rb:12:inerror_call'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/middlewares/base.rb:10:in error_call'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/connection.rb:260:inrescue in request'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/connection.rb:220:in request'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/middlewares/idempotent.rb:12:inerror_call'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/middlewares/base.rb:10:in error_call'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/connection.rb:260:inrescue in request'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/excon-0.23.0/lib/excon/connection.rb:220:in request'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fog-1.12.1/lib/fog/core/connection.rb:25:inrequest'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fog-1.12.1/lib/fog/aws/compute.rb:385:in _request'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fog-1.12.1/lib/fog/aws/compute.rb:380:inrequest'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fog-1.12.1/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb:54:in authorize_security_group_ingress'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/fog-1.12.1/lib/fog/aws/models/compute/security_group.rb:104:inauthorize_port_range'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/cloud/aws.rb:368:in add_security_group_rule'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/cloud/aws.rb:500:inblock (2 levels) in sync_security_groups'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/cloud/aws.rb:496:in each'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/cloud/aws.rb:496:inblock in sync_security_groups'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/cloud/aws.rb:490:in each'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/cloud/aws.rb:490:insync_security_groups'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/cloud/aws.rb:254:in setup_security_groups'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/cloud/aws.rb:72:inbefore_create_instance'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/thread_safe_proxy.rb:13:in method_missing'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/recipes/rubber/instances.rb:267:inblock in create_instance'
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/recipes/rubber/instances.rb:266:increate_instance'
from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rubber-2.5.2/lib/rubber/recipes/rubber/instances.rb:230:in `block (2 levels) in create_instances'

It happened to me and the reason was I was using my user name for the account field as opposed to my AWS account number. I'm assuming that if the account number is wrong, a similar error will ensue.

I got solution.
I remove the gem with github link from my gem file. I figured out that some time if you associate gem directed from github, you will get deploy error if that github link is down. So, should avoid adding github link in your gemfile to be save in deployment.

Related

Sidekiq fails, dequeueing mongoid connection times out, probably too many connections

I am currently running sidekiq 4.1.2. I've never managed to be able to run more than a handfull of jobs concurrently. Recently it's been looking like I've run into an issue described in the Sidekiq's Troubleshooting WIKI called Too many connections to MongoDB. Apparently, mongoid 3 doesn't properly disconnect workers. However, I am using mongoid 5.1.3.
My issue surfaces when a job, while a few other jobs are running, tries to hit the database with a query:
Timeout::Error: Timed out attempting to dequeue connection after 30 sec.
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool/queue.rb:190:in `wait_for_next!'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool/queue.rb:176:in `block in dequeue_connection'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool/queue.rb:190:in `wait_for_next!'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool/queue.rb:176:in `block in dequeue_connection'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool/queue.rb:172:in `loop'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool/queue.rb:172:in `dequeue_connection'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool/queue.rb:62:in `block in dequeue'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool/queue.rb:61:in `synchronize'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool/queue.rb:61:in `dequeue'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool.rb:51:in `checkout'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/connection_pool.rb:107:in `with_connection'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/server/context.rb:63:in `with_connection'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/operation/executable.rb:34:in `execute'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/collection/view/iterable.rb:80:in `send_initial_query'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/collection/view/iterable.rb:41:in `block in each'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/retryable.rb:51:in `call'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/retryable.rb:51:in `read_with_retry'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongo-2.2.5/lib/mongo/collection/view/iterable.rb:39:in `each'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongoid-5.1.3/lib/mongoid/query_cache.rb:207:in `each'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongoid-5.1.3/lib/mongoid/contextual/mongo.rb:121:in `each'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongoid-5.1.3/lib/mongoid/contextual/mongo.rb:295:in `map'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongoid-5.1.3/lib/mongoid/contextual/mongo.rb:295:in `map'
/home/me/applications/myapp/shared/bundle/ruby/2.2.0/gems/mongoid-5.1.3/lib/mongoid/contextual.rb:20:in `map'
/home/me/applications/myapp/releases/20160618143407/app/jobs/myjob.rb:8:in `block in perform'
After one job fails, the other jobs fail soon after. This most often happens after a few handfull of jobs have finished succesfully, which could indicate that those jobs don't disconnect from the database. Looking at top I can't see that mongo load cpu is too much.
At the same time this started to occur, I noticed that my sidetiq 0.7.0 enabled recurring jobs were not scheduled properly. One job has stopped being queued, and others are only queued once after restart.
According to my Sidekiq web interface I have 1 queue, called default, with 25 threads. Max. 12-15 of them get busy at the same time.
Any idea how to troubleshoot this issue?
The default max pool queue size is 5. Bumping max_pool_size up to e.g. 25 will enable more connections to your db.
production:
clients:
default:
options:
max_pool_size: 25
Change adding wait_queue_timeout attribute in mongoid.yml production config:
production:
clients:
default:
uri: mongodb://aaaaa.com:27017/mongo
options:
connect_timeout: 30
wait_queue_timeout: 30

Net::SFTP unable to connect via Ruby console

I am trying to connect to sftp server via ruby console.
Code snippet:::
Net::SFTP.start(IP, USERNAME, password: PASS) do |sftp|
.....
end
It throws the following error::::
Net::SSH::Disconnect: disconnected: No Host (7)
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/transport/session.rb:188:in `block in poll_message'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/transport/session.rb:178:in `loop'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/transport/session.rb:178:in `poll_message'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/transport/session.rb:163:in `next_message'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/authentication/session.rb:95:in `block in next_message'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/authentication/session.rb:94:in `loop'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/authentication/session.rb:94:in `next_message'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/authentication/methods/none.rb:14:in `authenticate'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/authentication/session.rb:79:in `block in authenticate'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/authentication/session.rb:66:in `each'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh/authentication/session.rb:66:in `authenticate'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-ssh-2.9.2/lib/net/ssh.rb:211:in `start'
from /Users/venkatesan/.rvm/gems/ruby-1.9.3-p385#helpkit/gems/net-sftp-2.1.2/lib/net/sftp.rb:31:in `start'
from (irb):143
from /Users/venkatesan/.rvm/rubies/ruby-1.9.3-p385/bin/irb:16:in `<main>'
I tried using Net::SSH as well.. Got same error.
But when i do sftp USERNAME and then it prompts for password. It connects properly when i give the password in terminal. But cant connect via ruby code alone.
Can someone throw some light on it?
Finally found the reason.. I was giving wrong parameter. it was user#host. My parameter was incorrect.
Thanks guys

Resque job returning with error: "No such file or directory - getcwd"

I have a really simple job:
class MyJob
#queue = :high
def self.perform(user_id)
user = User.find(user_id)
MyMailer.send_email(user).deliver
end
end
If I run it manually MyJob.perform(some_id)it works perfect. However, when Rescue is executing it, it returns this error:
Exception
Errno::ENOENT Error
No such file or directory - getcwd
shared/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_view/template/resolver.rb:221:in `expand_path' shared/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_view/template/resolver.rb:221:in `initialize' shared/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_view/template/resolver.rb:251:in `new' shared/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_view/template/resolver.rb:251:in `instances' shared/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_view/lookup_context.rb:16:in `<class:LookupContext>' shared/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_view/lookup_context.rb:12:in `<module:ActionView>' shared/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_view/lookup_context.rb:5:in `<top (required)>' shared/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/abstract_controller/view_paths.rb:45:in `lookup_context' shared/bundle/ruby/1.9.1/gems/actionmailer-3.2.12/lib/action_mailer/base.rb:456:in `process' shared/bundle/ruby/1.9.1/gems/actionmailer-3.2.12/lib/action_mailer/base.rb:452:in `initialize' shared/bundle/ruby/1.9.1/gems/actionmailer-3.2.12/lib/action_mailer/base.rb:439:in `new' shared/bundle/ruby/1.9.1/gems/actionmailer-3.2.12/lib/action_mailer/base.rb:439:in `method_missing' releases/1111111111111/app/jobs/my_job.rb:6:in `perform'
Have any ideas why might be happening?
Thanks!
Yes Sky. You are right about it needing to be restarted.
Some people received this error after trying to run from an already deleted directory.
I received this error after switching databases and leaving the server running. The old server info was still showing up but I was getting this error. Restarted my rails server and everything works fine with the new db.
Basically it means that there is a significant state change on the server, and your environment needs to be reset/restarted.
I started having this same issue on my production environment. After some investigation I found that this was caused by my resque workers failing to be properly restarted on each capistrano deployment.

Can't start jruby rails server on Windows because it can't find ncursesw

I can't seem to get the server to start for some reason, I keep getting this cryptic error.
C:\src\marvel\server\script>jruby rails server
c:/tools/jruby/lib/ruby/site_ruby/shared/ffi/library.rb:28:in `ffi_lib': Could n
(LoadError)ary 'ncursesw' : The operation completed successfully.
. Could not open library 'ncursesw.dll' : The operation completed successfully.
. Could not open library 'ncurses' : The operation completed successfully.
. Could not open library 'ncurses.dll' : The operation completed successfully.
from c:/tools/jruby/lib/ruby/site_ruby/shared/ffi/library.rb:10:in `map'
from c:/tools/jruby/lib/ruby/site_ruby/shared/ffi/library.rb:10:in `ffi_
lib'
from c:/tools/jruby/lib/ruby/gems/1.8/gems/ffi-ncurses-0.3.3/lib/ffi-ncu
rses.rb:32
from c:/tools/jruby/lib/ruby/gems/1.8/gems/ffi-ncurses-0.3.3/lib/ffi-ncu
rses.rb:64:in require'
from c:/tools/jruby/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/run
time.rb:64:inrequire'
from c:/tools/jruby/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/run
time.rb:62:in each'
from c:/tools/jruby/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/run
time.rb:62:inrequire'
from c:/tools/jruby/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/run
time.rb:51:in each'
from c:/tools/jruby/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/run
time.rb:51:inrequire'
from c:/tools/jruby/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:
112:in require'
from C:/src/marvel/server/config/application.rb:9
from C:/src/marvel/server/config/application.rb:28:inrequire'
from c:/tools/jruby/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/comm
ands.rb:28
from c:/tools/jruby/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/comm
ands.rb:27:in tap'
from c:/tools/jruby/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/comm
ands.rb:27
from c:/tools/jruby/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/comm
ands.rb:6:inrequire'
from rails:6
I figured it out, I don't need ncurses on Windows, so I just commented it out from my gemfile. It appears that Jruby cannot distinguish between windows and *nix, so it blows up without special care.

getaddrinfo: nodename nor servname provided, or not known

I have a Ruby on Rails application that I am deploying on a computer running Mac OS X 10.6. The code where the problem arises is run by a delayed_job. The problem only occurs when it is run through delayed_job. If I run it within a console (rails console production) or call the API directly through cURL, it works without any problems. Also, the entire process works without issue in my development environment.
Basically, the code works in one place, but for some reason, fails where it has to work. I've searched and found a few resources, but none of the suggestions apply or make any difference. When I log into the server and run the commands, everything works. But for some reason when they are run/started by Capistrano, it doesn't work.
Any help is greatly appreciated.
Important notes:
Ruby version: 1.9.2-p0
Rails version: 3.0.1
delayed_job version: latest (from collectiveidea/delayed_job)
rest-client version: 1.6.1
Code:
class CallApi < Struct.new(:num)
def perform
log "Entering perform"
apinum = num || 5
log "ApiNum = #{apinum}"
results = attempt(2,10) do
ActiveSupport::JSON.decode(RestClient.get(API_URL, {:params => {:apinum => apinum}}))
end
log "Results retrieved. (count: #{results.count})"
end
def log(message)
Delayed::Worker.logger.info "[CallApi] #{Time.now} - #{message}"
end
end
Environment Config (note: the url is fake, but of the same form as the real one):
API_URL = "http://api.example.org/api_endpoint"
# Originally, I had "http://" before the beginning, but found a
# post mentioning that Net::Http.start didn't like that.
# So I tried it both ways.
# The same error occurs regardless of if the "http://" is there.
Call where the error happens:
RestClient.get(API_URL, {:params => {:apinum => apinum}})
Error:
getaddrinfo: nodename nor servname provided, or not known
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/net/http.rb:644:in `initialize'
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/net/http.rb:644:in `open'
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/net/http.rb:644:in `block in connect'
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/timeout.rb:44:in `timeout'
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/timeout.rb:87:in `timeout'
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/net/http.rb:644:in `connect'
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/net/http.rb:637:in `do_start'
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/net/http.rb:626:in `start'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/rest-client-1.6.1/lib/restclient/request.rb:166:in `transmit'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/rest-client-1.6.1/lib/restclient/request.rb:60:in `execute'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/rest-client-1.6.1/lib/restclient/request.rb:31:in `execute'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/rest-client-1.6.1/lib/restclient.rb:68:in `get'
/private/var/www/project-gemset/releases/20101109002137/lib/call_api.rb:7:in `block in perform'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/attempt-0.2.0/lib/attempt.rb:70:in `attempt'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/attempt-0.2.0/lib/attempt.rb:114:in `attempt'
/private/var/www/project-gemset/releases/20101109002137/lib/call_api.rb:6:in `perform'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/backend/base.rb:77:in `invoke_job'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:118:in `block (2 levels) in run'
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/timeout.rb:57:in `timeout'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:118:in `block in run'
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:117:in `run'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:176:in `reserve_and_run_one_job'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:102:in `block in work_off'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:101:in `times'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:101:in `work_off'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:76:in `block (2 levels) in start'
/Users/api/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:75:in `block in start'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:72:in `loop'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/worker.rb:72:in `start'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/command.rb:100:in `run'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/command.rb:79:in `block in run_process'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/application.rb:250:in `call'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/application.rb:250:in `block in start_proc'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/daemonize.rb:199:in `call'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/daemonize.rb:199:in `call_as_daemon'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/application.rb:254:in `start_proc'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/application.rb:294:in `start'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/application_group.rb:159:in `block (2 levels) in start_all'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/application_group.rb:158:in `fork'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/application_group.rb:158:in `block in start_all'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/application_group.rb:157:in `each'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/application_group.rb:157:in `start_all'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/controller.rb:80:in `run'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons.rb:193:in `block in run_proc'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in `call'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in `catch_exceptions'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/gems/daemons-1.1.0/lib/daemons.rb:192:in `run_proc'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/command.rb:78:in `run_process'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/command.rb:72:in `block in daemonize'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/command.rb:70:in `times'
/Users/api/.rvm/gems/ruby-1.9.2-p0#project-gemset/bundler/gems/delayed_job-aba9905764c2/lib/delayed/command.rb:70:in `daemonize'
script/delayed_job:5:in `'
The error occurs when the DNS resolution fails. Check if you can wget (or curl) the api url from the command line. Changing the DNS server and testing it might help.
I ran into a similar situation today - deploying an app to a mac os x server, and receiving the 'getaddrinfo' message when I tried to access an external api. It turns out that the error occurs when the ssh session that originally launched the app is no longer active. That's why everything works perfectly if you ssh into your server and run commands manually (or launch the server manually) - as long as you keep your ssh session alive, this error won't occur.
Whether this is a bug or a quirk in OS X, I'm not sure. Here's the page that led me to the solution - http://lists.apple.com/archives/unix-porting/2010/Jul/msg00001.html
All I had to do was update my capistrano task to launch the app using 'nohup'. So changing
run "cd #{current_path} && RAILS_ENV=production unicorn_rails -c config/unicorn.rb -D"
to
run "cd #{current_path} && RAILS_ENV=production nohup unicorn_rails -c config/unicorn.rb -D"
did the trick for me.
Hope this helps somebody - it was quite a pain to figure out!
I fixed this problem simply by closing and reopening the Terminal.
rest-client's RestClient needs the http: scheme when resolving the URL. It calls Net::HTTP for you, which doesn't want the http: part, but rest-client takes care of that.
Is the URL the actual one you are attempting to reach? example.org is a valid domain used for testing and documentation and is reachable; I'd expect the "api" and "api_endpoint" parts to fail and see that when I try to reach them.
require 'socket'
IPSocket.getaddress('example.org') # => "2620:0:2d0:200::10"
IPSocket.getaddress('api.example.org') # =>
# ~> -:7:in `getaddress': getaddrinfo: nodename nor servname provided, or not known (SocketError)
# ~> from -:7:in `<main>'
Here's what I get using Curl:
greg-mbp-wireless:~ greg$ curl api.example.org/api_endpoint
curl: (6) Couldn't resolve host 'api.example.org'
greg-mbp-wireless:~ greg$ curl example.org/api_endpoint
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /api_endpoint was not found on this server.</p>
<hr>
<address>Apache Server at example.org Port 80</address>
</body></html>
greg-mbp-wireless:~ greg$ curl example.org
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>Example Web Page</TITLE>
</HEAD>
<body>
<p>You have reached this web page by typing "example.com",
"example.net","example.org&quot
or "example.edu" into your web browser.</p>
<p>These domain names are reserved for use in documentation and are not available
for registration. See <a href="http://www.rfc-editor.org/rfc/rfc2606.txt">RFC
2606</a>, Section 3.</p>
</BODY>
</HTML>
I got the same error when I check the localhost is set in hosts file it is somehow not set. Setting localhost to 127.0.0.1 solved it.
sudo vi /etc/hosts
>>
127.0.0.1 localhost
I restarted my computer (Mac Mountain Lion) and the problem fixed itself. Something having to do with the shell thinking it was disconnected from the internet I think.
Restarting your shell in some definite way may solve this problem as well. Simply opening up a new session/window however did not work.
To avoid this problem, we can bind to 127.0.0.1 instead of localhost:
bin/rails server -b 127.0.0.1
I was seeing this error unrelated to rails. It turned out my test was trying to use a port that was too high (greater than 65535).
This code will produce the error in question
require 'socket'
Socket.getaddrinfo("127.0.0.1", "65536")
For me, I had to change a line of code in my local_env.yml to get the rspec tests to run.
I had originally had:
REDIS_HOST: 'redis'
and changed it to:
REDIS_HOST: 'localhost'
and the test ran fine.
In my config/application.yml
I have changed this
redis:
url: "redis://redis:6379/0"
to this
redis:
url: "redis://localhost:6379/0"
and it works for me
I got the error while trying to develop while disconnected to the Internet. However, the website I was working on needs to be able to talk to some other websites, so it choked when it couldn't do so. Connecting to the internet fixed the error.
If all of the above fails, try to convert to UNIX Line Endings, or do:
brew install dos2unix
sudo dos2unix -c mac /private/etc/hosts
Maybe the hosts encoding is wrong.
hope this helps
I had this problem running rake db:create. This page clued me into the DNS issue. I checked my VPN connection and found it was disconnected for some reason. I reconnected and now rake worked without a hitch.

Resources