Dovecot Time moved backwards error
dovecot을 운영하다보면, 아래와 같은 메시지와 함께 dovecot 데몬이 죽는 경우가 발생한다.
Jun 28 23:58:32 jook dovecot: Time just moved backwards by 29 seconds. This might cause a lot of problems, so I’ll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards
보통 서버를 운영하다보면, 서버의 로드로 인해 서버 시간이 실제시간보다 느려지는 경우가 발생하여, rdate나 ntpdate로 시간을 맞추게 된다.
위의 경우는 서버 시간이 time서버의 시간보다 빨라서, rdate나 ntpdate로 서버시간을 동기화 할때, 서버시간이 이전시간으로 되돌아가는 경우, dovecot 데몬이 죽게 되는 현상이다.
해결 방법으로는 time 서버의 문제일 가능성이 있기 때문에, 우선 time서버를 변경해 보는 방법(구글링 결과로는 time.bora.net 타임서버를 사용하는 경우에 이러한 현상이 많이 발생하고 있다.)과 서버 시간을 동기화 하는 스크립트 상에서 dovecot 데몬을 체크해서 재실행 하는 방법이 있다
로그상에 나타난 http://wiki.dovecot.org/TimeMovedBackwards 링크를 따라가보면, 주기적으로 서버시간을 동기화 하는 것 보다는 ntpd를 이용해서 서버의 시간을 동기화 하도록 권고하고 있다.
dovecot의 버전에 따라서 위와 같은 issue가 발생하지 않는 경우도 있지만, 현재 CentOS_5.3 최신 버전인 dovecot-1.0.7-7.el5 에서는 위와같은 오류가 발생하고 있다.