Forum: Ruby on Rails "Temporary failure in name resolution" for requests but not from console

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
A452c2b58c14d060133eab0e494d9239?d=identicon&s=25 Bill Horsman (Guest)
on 2008-10-20 22:14
(Received via mailing list)
Hello,

I've been banging my head against this problem for a while now. I'm
using Net::HTTP.get(URI.parse(url)) to fetch a response from another
server. It looks like this:

module Hxml
  def self.fetch
    // Not really using bbc.co.uk but it behaves the same when I do
    return Net::HTTP.get(URI.parse('http://news.bbc.co.uk'))
  end
end

I call that from my controller on my staging box (using an HTTP
request, like normal) and it says "getaddrinfo: Temporary failure in
name resolution". Fair enough, but it does work from the console on
the staging box. In other words, from Mongrel I get an error, but from
the console it works fine. The error's backtrace points directly to
the line above, "Net::HTTP.get".

Now, the staging server is behind a firewall that I don't know much
about - and I can't rule out that being the cause of the problem.
Only, how would it work from the console if that was the case? As a
double check, curl also works from a terminal too.

It all works fine on my development box (Mongrel or console) - which
just adds to the puzzle.

I would have thought that the console environment was identical to the
mongrel environment. When I start up the console it reports that is
"Loading stage environment". And I can see mongrel running using ps
and it includes "-e stage" so I'm pretty sure the environments are the
same.

Running Ruby 1.8.6 on Rails 2.1.0, Mac OS X Server 10.5.4

Thanks.

-
Bill
A452c2b58c14d060133eab0e494d9239?d=identicon&s=25 Bill Horsman (Guest)
on 2008-10-22 10:11
(Received via mailing list)
Follow up from OP:

On a suggestion by Rick Tessner, I switched from using Net:HTTP to a
simple system call to curl. Same result :( It works fine from the
console but curl returns false when called from Mongrel. It definitely
looks like Mongrel is messing things up for me. It seems a little over
the top to switch from Mongrel to something else (like Passenger?)
just because of this.

Note, using an IP address works fine in tests - but the URL I need to
use needs the domain so that it can resolve its virtual hosts.

-
Bill
A452c2b58c14d060133eab0e494d9239?d=identicon&s=25 Bill Horsman (Guest)
on 2008-10-22 13:08
(Received via mailing list)
Another follow up from OP:

For the record, switching to Passenger fixed the problem. I'm happy to
stick with Passenger so that's fine. It looks like it's definitely a
Mongrel problem so I'll stop by the Mongrel people to investigate
further.

Thanks for listening ;-)

-
Bill
This topic is locked and can not be replied to.