Известные проблемы

Проблема:

При больших нагрузках, либо когда недоступен один из сканирующих демонов Dr.Web Daemon, адреса которых перечислены в настройках подключаемого модуля Drweb, а также если в его настройках указана большая величина тайм-аута сканирования (параметр Timeout), то при перезапуске комплекса Dr.Web MailD по сигналу SIGHUP может наблюдаться следующая картина: компоненты MailD core и Notifier завершаются с ошибкой, в результате чего компонент Dr.Web Monitor перезапускает эти компоненты и отправляет по электронной почте уведомление для администратора об инциденте. Записи в журнале Dr.Web Monitor имеют следующий вид (пример):

monitor ERROR component "drweb-maild" terminated by signal 6 (Aborted)
monitor DEBUG component "drweb-maild" cannot stop
monitor DEBUG send notification From:<e-mail@address>#012To:<e-mail@address>. Command: /usr/sbin/sendmail -t

Решение:

Ошибка вызвана тем, что компоненты MailD core и Notifier создают столь большое количество активных потоков, занимающихся обработкой трафика, что при поступлении сигнала SIGHUP они не успевают завершиться корректно за период времени, заданный параметром MaxTimeoutForThreadActivity. Это признак того, что программно-аппаратный комплекс, занимающийся обработкой почтового трафика, перегружен (как минимум – на пиках поступления трафика). Следует:

Увеличить величину тайм-аута MaxTimeoutForThreadActivity или ограничить число активных потоков в пулах потоков этих компонентов.

Крайне рекомендуется выполнить следующий комплекс мер по стабилизации работы программного комплекса:

Измерить объем обрабатываемого почтового трафика на пиках его поступления (используйте журналы и статистику);

Выполнить мероприятия по оптимизации использования Dr.Web MailD системных ресурсов;

В случае невозможности оптимизации, или если она не приносит желаемых результатов – выполнить модернизацию аппаратного обеспечения (увеличение объемов оперативной памяти и количества доступных процессорных ядер).

В качестве временной меры вы можете объявить переменную окружения DW_FORCE_EXIT (с любым значением). В этом случае Dr.Web Monitor при зависании компонентов при завершении их работы не будет слать администратору уведомлений, а просто завершит работу всего комплекса и завершится сам (используется для совместимости с предыдущими версиями Dr.Web MailD).

Проблема:

При запуске Dr.Web MailD компонент Dr.Web Monitor аварийно завершает компонент MailD core и отправляет по электронной почте уведомление для администратора об инциденте. Записи в журнале Dr.Web Monitor имеют следующий вид (пример):

monitor DEBUG DEBUG component "drweb-maild" not answer
monitor DEBUG Component::stopPid() # drweb-maild <comp name="drweb-maild" argv="local:/var/drweb/ipc/.agent" start="120" stop="30" log="2" user="drweb:drweb" fd="-1" pid="7194"/>
monitor DEBUG kill -TERM pid=7194 name="drweb-maild"

Решение:

Ошибка вызвана тем, что компонент MailD core создает при запуске столь большое количество потоков, что он не успевает стартовать за период времени, заданный в настройках запуска у Dr.Web Monitor. Следует:

Ограничить минимальное число активных потоков в пулах потоков MailD core.

Крайне рекомендуется выполнить следующий комплекс мер по стабилизации работы программного комплекса:

Измерить объем обрабатываемого почтового трафика на пиках его поступления (используйте журналы и статистику);

Выполнить мероприятия по оптимизации использования Dr.Web MailD системных ресурсов;

В случае невозможности оптимизации, или если она не приносит желаемых результатов – выполнить модернизацию аппаратного обеспечения (увеличение объемов оперативной памяти и количества доступных процессорных ядер).

Проблема:

При использовании ОС Solaris, при генерации уведомлений по обработанному письму или в ходе самой обработки письма, Dr.Web MailD фиксирует в журнале WARN-сообщения вида

notifier WARN Decoding string ' \362\345\361\362
notifier WARN because of iconv error: Invalid argument

Решение:

Для решения проблемы необходимо заменить версию системного конвертера iconv и использовать iconv из пакета libiconv, который распространяется под лицензией GNU (Загрузку можно выполнить по URL http://www.gnu.org/software/libiconv/#downloading).

Проблема:

При использовании ОС Solaris версии 10, 32-бит, при большой нагрузке на Dr.Web MailD может возникнуть следующая проблема:

Не принимаются к обработке сообщения, Dr.Web MailD фиксирует в журнале сообщения вида "Too many open files".

Решение:

Возникновение ошибки вызвано исчерпанием количества файловых дескрипторов, доступных Dr.Web MailD (в том числе – дескрипторов сокетов). Следует выполнить процедуры по Оптимизации работы и использования системных ресурсов.

Проблема:

Не удается выполнить подключение к источникам данных MySQL, Dr.Web MailD фиксирует в журнале сообщения вида

Cannot load library: Cannot load shared library libmysqlclient_r.so.18 because libmysqlclient_r.so.18: Undefined symbol "strnlen"

Решение:

Возникновение ошибки характерно только для ОС FreeBSD, в случае если в состав решения Dr.Web для почтовых серверов UNIX включена библиотека /usr/local/drweb/lib64/libc.so.7.

Для решения проблемы необходимо заменить в каталоге /usr/local/drweb/lib64 библиотеку libc.so.7 на одноименную символическую ссылку на системную библиотеку /lib/libc.so.7.

Проблема:

В журнале работы Dr.Web MailD присутствуют сообщения вида

Can not send msg from temp dir ('"<dir_path>"') -> remove dir and forget about it

где <dir_path> - путь к некоторому каталогу в хранилище писем (например, /var/drweb/msgs/db/A/00000B9A).

Решение:

Описанная ситуация не является индикатором ошибки обработки писем. Возникновение сообщения может быть спровоцировано попыткой повторной отправки писем в результате перезапуска Dr.Web MailD после аварийного завершения работы, и сигнализирует лишь о том, что сами письма уже были успешно отправлены в целевой MTA, но центральный компонент MailD core не успел очистить более не нужные каталоги этих писем в файловом хранилище.

Проблема:

Пользователям, которые используют почтовый сервер MS Exchange, в случае недоставки их писем, возвращаются нечитаемые DSN.

Решение:

Описанная проблема связана с особенностями реализации MS Exchange, которая не полностью соответствует требованиям RFC 3464. Для ее решения следует заменить стандартный шаблон уведомлений DSN dsn.msg, на специальную версию шаблона, разработанного для MS Exchange. Этот шаблон хранится в файле dsn_for_exchange.msg.

Способы замены шаблона рассмотрены в описании Обработки уведомлений.