Timo Sirainen via dovecot dovecot@dovecot.org wrote:
On 30. Aug 2024, at 19.00, dco2024--- via dovecot dovecot@dovecot.org wrote:
This is not limited to FreeBSD. I'm seeing it on Gentoo Linux. Kernel is 6.6.47-gentoo-x86_64, dovecot 2.3.21.1 (d492236fa0). The warning is logged once every 12-15 hours.
Syslog: 2024-08-24 18:03:49 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100068 seconds - adjusting timeouts. 2024-08-25 06:18:49 UTC myhost dovecot: master: Warning: Time moved forwards by 0.100063 seconds - adjusting timeouts. [snip] Chrony ntp keeps the time in sync and the time has been in sync to within 30us of UTC for many days. I noticed that it reports that the unadjusted system clock is about 2.31 ppm fast of UTC. Doing the math for dovecot's 12 hour warning interval: 12 hours * 3600 secs/hour * 2.3/1000000 = 0.0998 seconds. Could it be that dovecot is effectively measuring intervals of the uncorrected system clock time instead of the longer term adjusted time, and it complains when the accumulated NTP adjustments sum to 0.1 seconds.
I don't see how that would be possible. The check is using only just generated timestamps, not anything from a long time ago.
I wonder if this kind of a simple patch would be good enough of a fix:
[snip]
I did apply your patch to dovecot-2.3.21.1 on 14.1-STABLE FreeBSD.
Now, after 24 hours, dovecot doesn't complain about "Time moved forwards" any longer.
Before, I had had between 10 and 250 complaints every day.
HTH and regards, Michael