Bug 1461493
Summary: | inet:gethostbyname returns IPv4 results when IPv6 is configured [OSP-10] | ||
---|---|---|---|
Product: | Red Hat OpenStack | Reporter: | John Eckersberg <jeckersb> |
Component: | erlang | Assignee: | Peter Lemenkov <plemenko> |
Status: | CLOSED ERRATA | QA Contact: | Udi Shkalim <ushkalim> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | 10.0 (Newton) | CC: | achernet, apevec, jeckersb, jschluet, lhh, michele, plemenko, ushkalim |
Target Milestone: | z4 | Keywords: | Triaged, ZStream |
Target Release: | 10.0 (Newton) | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | erlang-18.3.4.5-3.el7ost.1 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | 1461190 | Environment: | |
Last Closed: | 2017-09-06 17:06:29 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
John Eckersberg
2017-06-14 15:10:56 UTC
Different build (against RHEL 7.3) - erlang-18.3.4.5-3.el7ost.1 [root@controller-0 ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:44:73:bc brd ff:ff:ff:ff:ff:ff inet 192.168.24.11/24 brd 192.168.24.255 scope global eth0 valid_lft forever preferred_lft forever inet 192.168.24.8/32 brd 192.168.24.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe44:73bc/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP qlen 1000 link/ether 52:54:00:23:f2:a0 brd ff:ff:ff:ff:ff:ff inet6 fe80::5054:ff:fe23:f2a0/64 scope link valid_lft forever preferred_lft forever 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP qlen 1000 link/ether 52:54:00:19:ae:76 brd ff:ff:ff:ff:ff:ff inet6 fe80::5054:ff:fe19:ae76/64 scope link valid_lft forever preferred_lft forever 5: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 62:86:39:dd:81:d1 brd ff:ff:ff:ff:ff:ff 6: br-isolated: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN qlen 1000 link/ether 52:54:00:23:f2:a0 brd ff:ff:ff:ff:ff:ff inet6 fe80::5054:ff:fe23:f2a0/64 scope link valid_lft forever preferred_lft forever 7: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN qlen 1000 link/ether 52:54:00:19:ae:76 brd ff:ff:ff:ff:ff:ff inet6 2620:52:0:13b8:5054:ff:fe3e:a/64 scope global valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe19:ae76/64 scope link valid_lft forever preferred_lft forever 8: vlan50: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN qlen 1000 link/ether e2:d9:b1:b1:8d:f0 brd ff:ff:ff:ff:ff:ff inet 172.16.0.8/24 brd 172.16.0.255 scope global vlan50 valid_lft forever preferred_lft forever inet6 fe80::e0d9:b1ff:feb1:8df0/64 scope link valid_lft forever preferred_lft forever 9: vlan20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN qlen 1000 link/ether 5e:d4:cc:98:d5:1e brd ff:ff:ff:ff:ff:ff inet6 fd00:fd00:fd00:2000::12/64 scope global valid_lft forever preferred_lft forever inet6 fd00:fd00:fd00:2000::10/64 scope global valid_lft forever preferred_lft forever inet6 fe80::5cd4:ccff:fe98:d51e/64 scope link valid_lft forever preferred_lft forever 10: vlan30: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN qlen 1000 link/ether 22:e3:c0:3d:51:b0 brd ff:ff:ff:ff:ff:ff inet6 fd00:fd00:fd00:3000::13/64 scope global valid_lft forever preferred_lft forever inet6 fe80::20e3:c0ff:fe3d:51b0/64 scope link valid_lft forever preferred_lft forever 11: vlan40: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN qlen 1000 link/ether fa:31:10:57:05:3a brd ff:ff:ff:ff:ff:ff inet6 fd00:fd00:fd00:4000::1b/64 scope global valid_lft forever preferred_lft forever inet6 fe80::f831:10ff:fe57:53a/64 scope link valid_lft forever preferred_lft forever 12: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 3e:b5:35:6e:a6:4a brd ff:ff:ff:ff:ff:ff 13: br-tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 1e:11:de:02:27:4d brd ff:ff:ff:ff:ff:ff 14: vxlan_sys_4789: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65470 qdisc noqueue master ovs-system state UNKNOWN qlen 1000 link/ether 0e:ae:6f:74:7e:d7 brd ff:ff:ff:ff:ff:ff inet6 fe80::cae:6fff:fe74:7ed7/64 scope link valid_lft forever preferred_lft forever [root@controller-0 ~]# erl -sname foo -proto_dist inet6_tcp Erlang/OTP 18 [erts-7.3.1.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] Eshell V7.3.1.3 (abort with ^G) (foo@controller-0)1> erl -sname foo -proto_dist inet6_tcp (foo@controller-0)1> erl -sname foo -proto_dist inet6_tcp. * 1: syntax error before: foo (foo@controller-0)1> inet:gethostbyname("rhel7"). {error,nxdomain} (foo@controller-0)2> inet:gethostbyname("controller-0"). {ok,{hostent,"controller-0",[],inet,4, [{192,168,24,8},{192,168,24,11},{172,16,0,8}]}} I think you're missing a few things from the original comment required to make this work: - set environment ERL_INETRC=/root/inetrc , just needs to be some readable path - set content of above ERL_INETRC file to "{inet6, true}." - set environment ERL_EPMD_ADDRESS=fd00::1 , replace with some valid ipv6 addr for your host or just add that ipv6 addr to some interface like I did - ensure /etc/hosts resolves the short hostname correctly to the ipv6 address chosen, such as: [root@rhel7 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 fd00::1 rhel7 - (optional) set ERL_INET_GETHOST_DEBUG=5 to get some extra debug output like in my original comment. Before running the `erl` command, make sure there is no existing epmd process running. If there is, kill it. This will ensure epmd is respawned and binds to the correct address provided by ERL_EPMD_ADDRESS. erlang-kernel-18.3.4.5-3.el7ost.1.x86_64 [root@controller-2 ~]# env | grep ERL ERL_INET_GETHOST_DEBUG=5 ERL_INETRC=/root/inetrc ERL_EPMD_ADDRESS=fd00:fd00:fd00:2000::12 [root@controller-2 ~]# cat /etc/hosts # HEADER: This file was autogenerated at 2017-08-29 10:41:55 -0400 # HEADER: by puppet. While it can still be managed manually, it # HEADER: is definitely not recommended. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 fd00:fd00:fd00:2000::12 controller-2.localdomain controller-2 [root@controller-2 ~]# ifconfig vlan20 vlan20: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fd00:fd00:fd00:2000::18 prefixlen 64 scopeid 0x0<global> inet6 fd00:fd00:fd00:2000::12 prefixlen 64 scopeid 0x0<global> inet6 fe80::cc9f:82ff:fe23:a387 prefixlen 64 scopeid 0x20<link> ether ce:9f:82:23:a3:87 txqueuelen 1000 (Ethernet) RX packets 1617054 bytes 285988454 (272.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1637853 bytes 359321348 (342.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 I stopped the pacemaker cluster just to make sure that we don't have any rabbit process that blocks us. [root@controller-2 ~]# erl -sname foo -proto_dist inet6_tcp inet_gethost[356516] (DEBUG):Saved domainname . inet_gethost[356516] (DEBUG):Created worker[356517] with fd 3 inet_gethost[356516] (DEBUG):Saved domainname . inet_gethost[356517] (DEBUG):Worker got request, op = 1, proto = 1, data = controller-2. inet_gethost[356517] (DEBUG):Starting gethostbyname(controller-2) inet_gethost[356517] (DEBUG):gethostbyname OK inet_gethost[356516] (DEBUG):End of file while reading from pipe. inet_gethost[356516] (DEBUG):Erlang has closed. Erlang/OTP 18 [erts-7.3.1.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] Eshell V7.3.1.3 (abort with ^G) (foo@controller-2)1> inet:gethostbyname("controller-2"). inet_gethost[357622] (DEBUG):Saved domainname . inet_gethost[357622] (DEBUG):Created worker[357623] with fd 3 inet_gethost[357622] (DEBUG):Saved domainname . inet_gethost[357623] (DEBUG):Worker got request, op = 1, proto = 2, data = controller-2. inet_gethost[357623] (DEBUG):Starting getaddrinfo(controller-2, ...) inet_gethost[357623] (DEBUG):getaddrinfo returned 0 {ok,{hostent,"controller-2.localdomain",[],inet6,16, [{64768,64768,64768,8192,0,0,0,18}]}} (foo@controller-2)2> Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2017:2653 |