[erlang-questions] {error,timeout} with gethostbyname

Raimo Niskanen raimo+erlang-questions@REDACTED
Fri Sep 25 09:54:37 CEST 2009


On Thu, Sep 24, 2009 at 04:55:57PM +0200, info wrote:
> I also tried to add the address of my dns server.
> inet_db:add_ns({ip}).
> But no effect.
> 
> inet_getrc(). gives now:
> 
> [{host,{127,0,0,1},["my_host"]},
>  {nameserver,{192,168,1,33}}]
> 
You have {res_lookup,[native,file]} meaning first is the OS
gethostbyname equivalent function used. During the startup
of Erlang it discovered that "my_host" could not be
resolved so it entered "my_host" as {127,0,0,1} into the
internal hosts table to ensure that inet:gethostbyname("my_host")
would succeed.

But the native lookup method times out, probably due
to misconfigured name resolving in the OS, so the
internal hosts table is never used.

How long does the call inet:gethostbyname("my_host")
take to return {error,timeout}?

Can the native lookup method look up any name at all?
Try:	inet_gethost_native:gethostbyname("localhost").
	inet_gethost_native:gethostbyname("my_host").
	inet_gethost_native:gethostbyname("www.google.com").
>From a Windows command shell, try:
	nslookup my_host
	nslookup localhost
Pay special attention to which nameserver that answers.

If you can not fix the network configuration, which will
solve your problem, you can configure erlang to not
use the native lookup method. The erlang DNS resolver
client was much improved to R13B02, but it worked
well in R13B01 too.

Set the lookup method to [file,dns] and add your
nameserver as you tried:
	inet_db:add_ns({192,168,1,33}).
	inet_db:set_lookup([file,dns]).
Then try inet:gethostbyname("my_host"),
or even inet_res:gethostbyname("my_host).

But I hope you can fix your network configuration instead...

> 
> 
> n Wed, Sep 23, 2009 at 04:31:35PM +0200, info wrote:
> > Hi all,
> > On a windows 2003 server sbs this command returns {ok,"my_host"} :
> > 
> > {ok,N}=inet:gethostname().
> > 
> > But the following command returns {error,timeout} :
> > 
> > inet:gethostbyname(N).
> > 
> > On a Vista machine, the previous command returns a correct answer.
> > 
> > I know that it is not an erlang problem but if you could give me support, I will appreciate ;-)
> 
> Erlang may have problems configuring name lookups.
> Give me the output from ets:tab2list(inet_db).
> 
> Which erlang release are you running, it sounds like pre-R13B02?
> 
> Try starting with erl -name foo
> and do the same, ets:tab2list/1 too.
> 
> -- 
> 
> / Raimo Niskanen, Erlang/OTP, Ericsson AB

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB


More information about the erlang-questions mailing list