mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-04 16:55:06 -05:00
Add the number of sources that form an agreement (overlapping intervals), if at least two agree with each other, and number of reachable sources to the "Can't synchronize: no majority" log message to better explain why synchronization is failing and hint that adding more sources might help.
47 lines
1.1 KiB
Bash
Executable File
47 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
. ./test.common
|
|
|
|
test_start "source selection"
|
|
|
|
# Falsetickers should be detected if their number is less than half of all
|
|
|
|
base_delay=1e-3
|
|
servers=5
|
|
|
|
for falsetickers in 1 2; do
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_source_selection || test_fail
|
|
check_packet_interval || test_fail
|
|
check_sync || test_fail
|
|
done
|
|
|
|
for falsetickers in 3 4; do
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_packet_interval || test_fail
|
|
# These check are expected to fail
|
|
check_source_selection && test_fail
|
|
check_sync && test_fail
|
|
|
|
if [ $falsetickers = 3 ]; then
|
|
check_log_messages "Can't synchronise: no majority (only 2 of 5 sources agree)" 1 1 || test_fail
|
|
else
|
|
check_log_messages "Can't synchronise: no majority (no agreement among 5 sources)" 1 1 || test_fail
|
|
fi
|
|
done
|
|
|
|
# Sources with large asymmetric delay should be excluded
|
|
|
|
servers=3
|
|
falsetickers=0
|
|
base_delay="(+ 1e-3 (equal 0.1 to 2) (equal 0.1 to 3))"
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_source_selection || test_fail
|
|
check_sync || test_fail
|
|
|
|
test_pass
|