When the server clock is moved forward or back by several seconds in one step, timers that depend on the system clock fire all at once or stop.
Why Time sync moves the clock by a large amount in one step → Effect Timers fire in a batch or stop, and timeouts are misjudged → On screen Buff and cooldown glitches, mass disconnects, fast-forward
Primary owner Game team (Server development) · Also Infra team (Server infrastructure)
Game team action items
Compute elapsed time, timeouts, and cooldowns with a monotonic clock that never jumps or goes backward, use the wall clock only for display and logging.
Infra team action items
Adjust the clock gradually (chrony’s makestep only right after startup), monitor time sync status (clock offset).
Ballpark numbers
ntpd steps the clock in one go when the offset exceeds 0.128 s; below that, it slews gradually at a rate that takes a little over 30 minutes to remove a 1-second offset. With the recommended setting (makestep), chrony, now widely used, steps the clock only a few times right after startup, then slews gradually. The clock also jumps when a VM pauses briefly and resumes.
On the graph
Random spikes · Timer firings and disconnects, clock adjustment log
Where to look
Entries in the time sync service’s log where the clock was stepped by a large amount, lined up with when the problems occurred. With chrony, any adjustment larger than logchange (default 1 s) is written to syslog
Confirmed if
Clock adjustments appear in the log at the times of buff and cooldown glitches, mass disconnects, and fast-forward, and the size of the adjustment matches the size of the glitch
Ruled out if
No clock adjustments logged: not this cause. On a VM, also check for a pause and resume (“Cloud host maintenance and live migration”)
Check with
Infra tools (no game code needed)
Sources
ntpd - Network Time Protocol (NTP) daemonNetwork Time Foundation Offsets above the 128 ms step threshold are corrected in one step and smaller ones gradually, at 0.5 ms per second, so correcting 1 second takes 2,000 s (about 33 minutes)
chrony – Frequently Asked Questionschrony Recommended: allow steps only a few times right after startup, as in makestep 1 3; a VM that was paused and resumed can wake up with the wrong time
clock_gettime(2) — Linux manual pageLinux man-pages CLOCK_MONOTONIC is not affected by discontinuous jumps in the system clock and never goes backward
chrony.conf(5)chrony logchange: clock adjustments larger than this value (default 1 s) are written to syslog