Bug 1525833

Summary: chrony-3.1-2 does not sync with ntp server
Product: Red Hat Enterprise Linux 7 Reporter: woosung225
Component: chronyAssignee: Miroslav Lichvar <mlichvar>
Status: CLOSED NOTABUG QA Contact: qe-baseos-daemons
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.4CC: hasuzuki
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-01-02 10:18:03 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 woosung225 2017-12-14 07:18:18 UTC
Description of problem:

Chrony-3.1-2 version has been installed on RHEL 7.4.
chrony-3.1-2 does not sync with ntp server.

Version-Release number of selected component (if applicable):
Chrony-3.1-2 
Chrony-3.2

How reproducible:
# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? 10.xx.xx.x                    3   6   377    16    +28ms[  +28ms] +/- 4695ms



# chronyc sources -v
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? 10.xx.xx.xx                    3   7   377    36    +30ms[  +30ms] +/- 4791ms



# chronyc tracking
Reference ID    : 00000000 ()
Stratum         : 0
Ref time (UTC)  : Thu Jan 01 00:00:00 1970
System time     : 0.000000000 seconds fast of NTP time
Last offset     : +0.000000000 seconds
RMS offset      : 0.000000000 seconds
Frequency       : 6.970 ppm fast
Residual freq   : +0.000 ppm
Skew            : 0.000 ppm
Root delay      : 1.000000000 seconds
Root dispersion : 1.000000000 seconds
Update interval : 0.0 seconds
Leap status     : Not synchronised




# chronyc activity
200 OK
1 sources online
0 sources offline
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address



# tcpdump -n -i any port 123 -vvvvv
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
18:55:19.270779 IP (tos 0x0, ttl 64, id 22960, offset 0, flags [DF], proto UDP (17), length 76)
    MyIP.54766 > NTP_IP.ntp: [bad udp cksum 0x807a -> 0xfe34!] NTPv4, length 48
        Client, Leap indicator:  (0), Stratum 0 (unspecified), poll 6 (64s), precision 32
        Root Delay: 0.000000, Root dispersion: 0.000000, Reference-ID: (unspec)
          Reference Timestamp:  0.000000000
          Originator Timestamp: 3721974917.258155530 (2017/12/11 18:55:17)
          Receive Timestamp:    348594726.968448707 (2047/02/24 07:20:22)
          Transmit Timestamp:   1684403634.382490515 (2089/06/24 01:22:10)
            Originator - Receive Timestamp:  +921587105.710293177
            Originator - Transmit Timestamp: -2037571282.875665014
18:55:19.271436 IP (tos 0xc0, ttl 53, id 0, offset 0, flags [DF], proto UDP (17), length 76)
    NTP_IP.ntp > MyIP.54766: [udp sum ok] NTPv4, length 48
        Server, Leap indicator:  (0), Stratum 3 (secondary reference), poll 6 (64s), precision -24
        Root Delay: 0.193771, Root dispersion: 3.678436, Reference-ID: 150.19.7.82
          Reference Timestamp:  3721741712.029829228 (2017/12/09 02:08:32)
          Originator Timestamp: 1684403634.382490515 (2089/06/24 01:22:10)
          Receive Timestamp:    3721974919.269163925 (2017/12/11 18:55:19)
          Transmit Timestamp:   3721974919.269184636 (2017/12/11 18:55:19)
            Originator - Receive Timestamp:  +2037571284.886673409
            Originator - Transmit Timestamp: +2037571284.886694120
18:56:23.661063 IP (tos 0x0, ttl 64, id 39816, offset 0, flags [DF], proto UDP (17), length 76)
    MyIP.32904 > NTP_IP.ntp: [bad udp cksum 0x807a -> 0x9b7b!] NTPv4, length 48
        Client, Leap indicator:  (0), Stratum 0 (unspecified), poll 6 (64s), precision 32
        Root Delay: 0.000000, Root dispersion: 0.000000, Reference-ID: (unspec)
          Reference Timestamp:  0.000000000
          Originator Timestamp: 3721974919.269184636 (2017/12/11 18:55:19)
          Receive Timestamp:    1641777836.366650475 (2088/02/16 16:52:12)
          Transmit Timestamp:   2969412072.534118970 (1994/02/05 13:41:12)
            Originator - Receive Timestamp:  -2080197082.902534160
            Originator - Transmit Timestamp: -752562846.735065665
18:56:23.661823 IP (tos 0xc0, ttl 53, id 0, offset 0, flags [DF], proto UDP (17), length 76)
    NTP_IP.ntp > MyIP.32904: [udp sum ok] NTPv4, length 48
        Server, Leap indicator:  (0), Stratum 3 (secondary reference), poll 6 (64s), precision -24
        Root Delay: 0.193771, Root dispersion: 3.679397, Reference-ID: 150.19.7.82
          Reference Timestamp:  3721741712.029829228 (2017/12/09 02:08:32)
          Originator Timestamp: 2969412072.534118970 (1994/02/05 13:41:12)
          Receive Timestamp:    3721974983.659481047 (2017/12/11 18:56:23)
          Transmit Timestamp:   3721974983.659527012 (2017/12/11 18:56:23)
            Originator - Receive Timestamp:  +752562911.125362076
            Originator - Transmit Timestamp: +752562911.125408041


Steps to Reproduce:
1.
2.
3.

Actual results:
Time synchronization does not work


Expected results:
Time synchronization does not work

Additional info:
I deleted chrony-3.1-2 and confirmed that it synchronize normally when running chrony-2.1.1-3 version.

Installing chrony-3.2 is the same thing. What is the avoidance method?

[root@MyHost ~]# rpm -qa | grep chrony
chrony-3.1-2.el7.centos.x86_64
[root@MyHost ~]# rpm -e chrony
[root@MyHost ~]# rpm -ivh chrony-2.1.1-3.el7.centos.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:chrony-2.1.1-3.el7.centos        ################################# [100%]
[root@MyHost ~]# rpm -qa | grep chrony
chrony-2.1.1-3.el7.centos.x86_64
[root@MyHost ~]# systemctl start chronyd
[root@MyHost ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 10.xx.xx.xx                    3   6     7     0    -35us[  -18ms] +/-  643ms
[root@MyHost ~]#

Comment 2 Miroslav Lichvar 2018-01-02 10:18:03 UTC
The server is ignored for synchronization of the clock because it's too inaccurate. In the "chronyc sources" output there is "+/- 4695ms", which is larger than the default maxdistance of 3 seconds. The maxdistance option was added in chrony-2.2, so that's why it worked with chrony-2.1. Older versions only have a hardcoded limit for the root dispersion to be smaller than 16 seconds.

The tcpdump output shows that the NTP server has a root dispersion of about 3.6 seconds. Is it a Windows NTP server? You can also check the root dispersion with "chronyc ntpdata".

A larger maxdistance needs to be set in chrony.conf to allow chronyd to use the server for synchronization.