[erlang-questions] Inconsistent hostnames
Mon Jul 11 14:36:15 CEST 2016
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 "
> However, if I start erlang with "erl -name x", net_adm:localhost() returns "
> 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.
> erlang-questions mailing list
/ Raimo Niskanen, Erlang/OTP, Ericsson AB
More information about the erlang-questions