Johannes Berg wrote:
On Fri, 2008-06-20 at 11:10 +0200, Anders wrote:
Johannes Berg johannes@sipsolutions.net writes:
On Fri, 2008-06-20 at 10:53 +0200, Anders wrote:
I was puzzled that it was always 4398 seconds, in particular because this server runs an NTP daemon. A little searching for this problem shows that it is an issue with the Linux kernel gettimeofday(), see e.g. http://lkml.org/lkml/2007/8/23/96 The thread puts it down to buggy hardware and puts a workaround into the kernel where it belongs, not in dovecot. That's not helpful.
By that line, the entire "time moved backwards" thing does not belong in Dovecot.
Why? That's a different thing, dovecot is detecting that something is wrong and that it will be unsafe for it to continue operating. That's an entirely different class than trying to work around the detected problem, imho.
This bug causes Dovecot to run the IO loop in the future for one iteration, and then die when we get back to present time.
By the time Dovecot dies, some damage could already have happend, for example if ioloop_time is stored to permanent storage.
BTW, can you send a link to the post with the resolution for the kernel? I didn't manage to find any final conclusion, but I would like to propose the fix to our kernel provider :).
Thanks, Anders.