The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Dovecot убивает себя :("
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Dovecot убивает себя :("  +/
Сообщение от Gleb on 29-Янв-08, 12:14 
Hi, All!

лог:
Fatal: Time just moved backwards by 7 seconds. This might cause a lot of problems, so I'll just kill myself now.

Народ, помогите отучить Dovecot делать проверку времени или нереагировать на время так болезненно.

Заранее спасибо.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Dovecot убивает себя :("  +/
Сообщение от Andrey Mitrofanov on 29-Янв-08, 12:29 
>лог:
>Fatal: Time just moved backwards by 7 seconds. This might cause a
>lot of problems, so I'll just kill myself now.

google.ru: dovecot "Fatal: Time just moved backwards"
http://www.dovecot.org/list/dovecot/2007-March/020367.html и далее
Версию "по-новее" взять (или по-старее?)? Там ещё sleep-ов понавтыкали...
Или часы-батарейку-ntpd попытаться "починить"...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Dovecot убивает себя :("  +/
Сообщение от Gleb on 29-Янв-08, 12:44 
>Версию "по-новее" взять (или по-старее?)? Там ещё sleep-ов понавтыкали...
>Или часы-батарейку-ntpd попытаться "починить"...

версии разные перепробывал
батарейка да - сраная
падает именно после синхронизации времени

но вопрос в другом: Как отучить Dovecot от такой реакции?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Dovecot убивает себя :("  +/
Сообщение от Gleb on 29-Янв-08, 15:47 
нашел в исходниках ioloop.c такой кусок кода:

........................
        if (ioloop_time > ioloop_timeval.tv_sec) {
                time_t diff = ioloop_time - ioloop_timeval.tv_sec;

                /* Note that this code is here only because this is the easiest
                   place to check for this. The I/O loop code itself could be
                   easily fixed to work with time moving backwards, but there's
                   really no point because there are a lot of other places
                   which may break in more or less bad ways, such as files'
                   timestamps moving backwards. */
                if (diff > IOLOOP_MAX_TIME_BACKWARDS_SLEEP) {
                        i_fatal("Time just moved backwards by %ld seconds. "
                                "This might cause a lot of problems, "
                                "so I'll just kill myself now. "
                                "http://wiki.dovecot.org/TimeMovedBackwards",
                                (long)diff);
                } else {
                        i_error("Time just moved backwards by %ld seconds. "
                                "I'll sleep now until we're back in present. "
                                "http://wiki.dovecot.org/TimeMovedBackwards",
                                (long)diff);
                        /* Sleep extra second to make sure usecs also grows. */
                        diff++;

                        while (diff > 0 && sleep(diff) != 0) {
                                /* don't use sleep()'s return value, because
                                   it could get us to a long loop in case
                                   interrupts just keep coming */
                                diff = ioloop_time - time(NULL) + 1;
                        }

                        /* Try again. */
                        io_loop_handle_timeouts(ioloop, TRUE);
                }
        }
.........................

что если убрать функцию i_fatal?
насколько это опасно?

ЗЫ смущают коменты...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Dovecot убивает себя :("  +/
Сообщение от angra (ok) on 29-Янв-08, 16:26 
Лучше измените значение IOLOOP_MAX_TIME_BACKWARDS_SLEEP, лучше получить засыпание на несколько секунд, чем проблемы в работе, которые вовсе необязательно сразу проявятся.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Dovecot убивает себя :("  +/
Сообщение от Gleb on 29-Янв-08, 17:02 
>Лучше измените значение IOLOOP_MAX_TIME_BACKWARDS_SLEEP, лучше получить засыпание на несколько секунд, чем проблемы
>в работе, которые вовсе необязательно сразу проявятся.

Судя по всему через конфиги и параметры вылечить не получится.
Я уже думал над изменением этого параметра.
Он равен 5.
Попробую выставить 7200 (2ч.)
Спасибо.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Dovecot убивает себя :("  +/
Сообщение от vvs (??) on 05-Сен-09, 00:35 
>>Лучше измените значение IOLOOP_MAX_TIME_BACKWARDS_SLEEP, лучше получить засыпание на несколько секунд, чем проблемы
>>в работе, которые вовсе необязательно сразу проявятся.
>
>Судя по всему через конфиги и параметры вылечить не получится.
>Я уже думал над изменением этого параметра.
>Он равен 5.
>Попробую выставить 7200 (2ч.)
>Спасибо.

всё оказалось намного проще! Нужно лишь добавить ключ "-x" в строку запуска ntpd, чтобы часы подводились плавно, а не мгновенно. Тогда ничего падать не будет ))

как пример у меня:

/usr/sbin/ntpd -p /var/run/ntpd.pid -u 106:110 -g -x

http://zenway.ru/

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Dovecot убивает себя :("  +/
Сообщение от Aivanzipper email on 25-Ноя-09, 18:37 
# postfix stop
# cd /usr/ports/mail/dovecot && make deinstall
# sysinstall (set TZ)
# make install clean
# /usr/local/etc/rc.d/dovecot start
# postfix start

Мне это помогло.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру