mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 16:45:07 -05:00
If the computer is overloaded so much that chronyd cannot stop a slew within one second of the scheduled end and the actual duration is more than doubled (2 seconds with the minimum duration of 1 second), the overshoot will be larger than the intended correction. If these conditions persist, the oscillation will grow up to the maximum offset allowed by maxslewrate and the delay in stopping. Monitor the excess duration as an exponentially decaying maximum value and don't allow any slews shorter than 5 times the value to damp the oscillation. Ignore delays longer than 100 seconds, assuming they have a different cause (e.g. the system was suspended and resumed) and are already handled in the scheduler by triggering cancellation of the ongoing slew. This should also make it safer to shorten the minimum duration if needed. Reported-by: Daniel Franke <dff@amazon.com>
14 KiB
14 KiB