mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-04 08:55:06 -05:00
When there are duplicate ntp servers listed on the initstepslew line, 2 SourceRecords are created (sourceA and sourceB), and two timers are created (timerA and timerB). When ntp responses are received, only sourceA is updated because of the way read_from_socket searches for a matching record. Eventually, the criteria for sourceA are met, causing timerA to stop and n_completed_sources to increment. timerB continues to trigger, sending ntp poll messages to the ntp server. Responses from that server are assigned to sourceA, triggering the criteria for sourceA and causing n_completed_sources to increment improperly. Once this happens enough times, n_complete_sources == number of servers and all SourceRecords are deleted. The next time timerB triggers, it attempts to access sourceB, which was already been deleted, causing the core.
21 KiB
21 KiB