Gluon: NTP client does not rotate through rrset

Created on 28 Jul 2016  路  7Comments  路  Source: freifunk-gluon/gluon

We accidentally had an IPv4 address in our ntp.services.ffda.io hostname in addition to the IPv6 address. And it seems like the ntp client does not rotate through the rrset, since always the same address was retried.

# nslookup ntp.services.ffda.io
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost

Name:      ntp.services.ffda.io
Address 1: fd01:67c:2ed8:a::53:1
Address 2: 10.223.254.53
root@64289-rocket-cloud:~# ps | grep ntp
 1639 root      1524 S    /usr/sbin/ntpd -n -S /usr/sbin/ntpd-hotplug -p ntp.services.ffda.io
 2426 root      1520 S    grep ntp
root@64289-rocket-cloud:~# strace -p1639
Process 1639 attached
restart_syscall(<... resuming interrupted call ...>) = 0
gettimeofday({1469669437, 327510}, NULL) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
bind(3, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
setsockopt(3, SOL_IP, IP_TOS, [16], 4)  = 0
gettimeofday({1469669437, 328763}, NULL) = 0
sendto(3, "#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 48, MSG_DONTWAIT, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("10.223.254.53")}, 16) = -1 ENETUNREACH (Network is unreachable)
write(2, "ntpd: send failed: Network is un"..., 42) = 42
close(3)                                = 0
poll(0x9a61a8, 0, 33000^CProcess 1639 detached
 <detached ...>
root@64289-rocket-cloud:~# strace -p1639
Process 1639 attached
restart_syscall(<... resuming interrupted call ...>) = 0
gettimeofday({1469669503, 357426}, NULL) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
bind(3, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
setsockopt(3, SOL_IP, IP_TOS, [16], 4)  = 0
gettimeofday({1469669503, 358649}, NULL) = 0
sendto(3, "#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 48, MSG_DONTWAIT, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("10.223.254.53")}, 16) = -1 ENETUNREACH (Network is unreachable)
write(2, "ntpd: send failed: Network is un"..., 42) = 42
close(3)                                = 0
poll(0x9a61a8, 0, 33000)                = 0 (Timeout)
gettimeofday({1469669536, 387469}, NULL) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
bind(3, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
setsockopt(3, SOL_IP, IP_TOS, [16], 4)  = 0
gettimeofday({1469669536, 388627}, NULL) = 0
sendto(3, "#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 48, MSG_DONTWAIT, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("10.223.254.53")}, 16) = -1 ENETUNREACH (Network is unreachable)
write(2, "ntpd: send failed: Network is un"..., 42) = 42
close(3)                                = 0
poll(0x9a61a8, 0, 33000)                = 0 (Timeout)
gettimeofday({1469669569, 416820}, NULL) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
bind(3, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
setsockopt(3, SOL_IP, IP_TOS, [16], 4)  = 0
gettimeofday({1469669569, 417992}, NULL) = 0
sendto(3, "#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 48, MSG_DONTWAIT, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("10.223.254.53")}, 16) = -1 ENETUNREACH (Network is unreachable)
write(2, "ntpd: send failed: Network is un"..., 42) = 42
close(3)                                = 0
poll(0x9a61a8, 0, 33000)                = 0 (Timeout)
gettimeofday({1469669602, 446833}, NULL) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
bind(3, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
setsockopt(3, SOL_IP, IP_TOS, [16], 4)  = 0
gettimeofday({1469669602, 448168}, NULL) = 0
sendto(3, "#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 48, MSG_DONTWAIT, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("10.223.254.53")}, 16) = -1 ENETUNREACH (Network is unreachable)
write(2, "ntpd: send failed: Network is un"..., 42) = 42
close(3)                                = 0
poll(0x9a61a8, 0, 33000d^CProcess 1639 detached
 <detached ...>
bug upstream issue

All 7 comments

Busybox limitations, great...

is this the right place for this report if this is a limitation upstream?

It's the right place to keep track of this limitation, but indeed we should file an upstream bug.

someone else reported this in the busybox bugzilla tracker on 2017-10-27.
https://bugs.busybox.net/show_bug.cgi?id=10466
it has already been fixed, but there's no release containing the fixes yet.
the fixes consist of three patches/commits:
https://git.busybox.net/busybox/commit/networking/ntpd.c?id=a1e9bc6876f6539805095e9395c604d3675c526d
https://git.busybox.net/busybox/commit/networking/ntpd.c?id=6a4f2231221c2c4f7ca82f081f442e31a6cfd051
https://git.busybox.net/busybox/commit/networking/ntpd.c?id=d5c1482fbac71c51e3add52632cdf1f9f9e6661b
@NeoRaider , how do we get these fixes into LEDE/Gluon?

buysbox release 1.28.0 (05.01.2018) contains the fixes.
there's no integration in OpenWrt, yet.

there's a pull request now to include busybox 1.28.0 in OpenWrt so this will be fixed upstream, soon.
and therefore in gluon-next, too.
https://github.com/openwrt/openwrt/pull/733

this has been merged in Gluon master in April and will therefore be part of the openwrt 18.06 release.
as this is not a big issue, we won't backport this.
closing as fixed.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

oszilloskop picture oszilloskop  路  5Comments

lephisto picture lephisto  路  5Comments

lcb01a picture lcb01a  路  3Comments

RalfJung picture RalfJung  路  5Comments

kpanic23 picture kpanic23  路  5Comments