[erlang-questions] Inconsistent hostnames

Raimo Niskanen <>
Mon Jul 11 15:28:19 CEST 2016


On Mon, Jul 11, 2016 at 03:08:17PM +0200, Oliver Korpilla wrote:
> Hello, Raimo.
> 
> Agreed, it could cause surprises, but only on upgrading the system to a newer OTP. Wouldn't it be a bit naive to expect no changes whatsoever when doing that, anyway?

"Naive" might be a harsh word.  We have historically had internal customers
that pay our salary refusing to upgrade to a newer OTP for lesser reasons
thus forcing us to maintain an old major release forever
(at least for very long), and we do not have those resources.

But times have changed for the better so this might be called an
inconsistency that should be fixed.  It is not my call, though.

And I predict that it will be cumbersome to figure out what the "correct"
behaviour would be for both cases on all supported systems
and (mis)configurations?

/ Raimo


> 
> Regards,
> Oliver
>  
> 
> Gesendet: Montag, 11. Juli 2016 um 14:36 Uhr
> Von: "Raimo Niskanen" <>
> An: 
> Betreff: Re: [erlang-questions] Inconsistent hostnames
> On Tue, Jun 21, 2016 at 07:11:54PM +0000, Ryan Stewart wrote:
> > In deploying my erlang app to some new CentOS servers with erlang 18.3, I
> > came across an oddity in networking. The server's networking config, which
> > is admittedly messed up, looks something like:
> > short hostname: bob
> > long hostname: bob.prod.example.net
> > domain: example.com
> >
> > Now when I start erlang with "erl -sname x", net_adm:localhost() returns "
> > bob.prod.example.net".
> >
> > However, if I start erlang with "erl -name x", net_adm:localhost() returns "
> > bob.example.com".
> >
> > I believe this comes from net_kernel:create_hostpart/2, where it follows
> > different paths on short vs long node names. On a long node name, it
> > appears to use short hostname + domain, where on a short node name, it
> > simply uses the long hostname. That decision appears to trickle through the
> > rest of the networking libraries.
> >
> > I understand that we need to fix the config on the server. I just wondered
> > if this might be considered a bug in erlang as well.
> 
> This behaviour is old, and changing it would either surprise either some
> important "short names" using application or ditto "long names" one.
> 
> For -name the Erlang networking code tries to parse the OS configuration
> files e.g /etc/resolv.conf to figure out the domain name.
> net_adm:localhost() then puts them together.
> 
> For -sname the Erlang networking code tries to look up the short hostname
> using the native resolver to find a fully qualified alias, and takes the
> domain from that.
> 
> We might call this an annoying irregularity of not very big practical
> importance, probably not worth changing...
> 
> I actually do not understand why net_adm:localhost() returns the long
> hostname for -sname in the first place. I think the documentation leaves
> room for returning the short hostname, but changing that could probably
> affect which IP address is used to contact EPMD which would surprise
> some important "short names" using application.
> 
> >
> > Ryan
> 
> > _______________________________________________
> > erlang-questions mailing list
> > 
> > http://erlang.org/mailman/listinfo/erlang-questions
> 
> 
> --
> 
> / Raimo Niskanen, Erlang/OTP, Ericsson AB
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions[http://erlang.org/mailman/listinfo/erlang-questions]

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list