ntp: reset polling interval when replacing sources
Set the polling interval to minpoll when changing address of a source, but only if it is reachable to avoid increasing load on server or network in case that is the reason for the source being unreachable. This shortens the time needed to replace a falseticker or unsynchronized source with a selectable source.
This commit is contained in:
parent
b2dac47c82
commit
5ba42cee45
2 changed files with 25 additions and 0 deletions
|
@ -833,6 +833,12 @@ NCR_ChangeRemoteAddress(NCR_Instance inst, NTP_Remote_Address *remote_addr, int
|
|||
inst->local_addr.sock_fd = NIO_OpenServerSocket(remote_addr);
|
||||
}
|
||||
|
||||
/* Reset the polling interval only if the source wasn't unreachable to
|
||||
avoid increasing server/network load in case that is what caused
|
||||
the source to be unreachable */
|
||||
if (SRC_IsReachable(inst->source))
|
||||
NCR_ResetPoll(inst);
|
||||
|
||||
/* Update the reference ID and reset the source/sourcestats instances */
|
||||
SRC_SetRefid(inst->source, UTI_IPToRefid(&remote_addr->ip_addr),
|
||||
&inst->remote_addr.ip_addr);
|
||||
|
|
|
@ -46,4 +46,23 @@ check_sync || test_fail
|
|||
check_file_messages "20.*192.168.123.*" 15 17 measurements.log || test_fail
|
||||
rm -f tmp/measurements.log
|
||||
|
||||
servers=6
|
||||
falsetickers=2
|
||||
client_server_conf="pool nodes-1-2-3-4-5-6.net1.clk maxsources 5 polltarget 1 iburst"
|
||||
wander=1e-12
|
||||
jitter=1e-6
|
||||
min_sync_time=7
|
||||
|
||||
run_test || test_fail
|
||||
check_chronyd_exit || test_fail
|
||||
check_source_selection || test_fail
|
||||
check_packet_interval || test_fail
|
||||
check_sync || test_fail
|
||||
|
||||
check_log_messages "Detected falseticker" 2 10 || test_fail
|
||||
check_log_messages "Source 192.168.123.. replaced with" 1 1 || test_fail
|
||||
check_file_messages "20.*192.168.123.* 11.1 6 6 " 15 17 measurements.log || test_fail
|
||||
check_file_messages "20.*00:01:.. 192.168.123.* 11.1 6 6 " 1 1 measurements.log || test_fail
|
||||
rm -f tmp/measurements.log
|
||||
|
||||
test_pass
|
||||
|
|
Loading…
Reference in a new issue