Displaying 1 result from an estimated 1 matches for "timeout_update_next".
2018 Feb 13
1
dovecot: master: Panic: kevent() failed: Invalid argument
...->tv_usec is 1000000uS (1 second).
So, it seems that if gettimeofday() returns exactly 0 microseconds, and
timeout->next_run has exactly 1000000 microseconds, the kevent() call
will fail (1 in 1e12 chance?).
I'm not entirely sure where timeout->next_run is computed, but looking
at timeout_update_next(), it adjusts the seconds only if the
microseconds are greater than 1000000:? (ioloop.c, line 235)
if (timeout->next_run.tv_usec > 1000000) {
??????????????? timeout->next_run.tv_sec++;
??????????????? timeout->next_run.tv_usec -= 1000000;
}
It seems like the comparison here should...