Перейти к содержимому


Фото
- - - - -

Проблема с drweb-sender (maild-postfix)


  • Please log in to reply
12 ответов в этой теме

#1 Ivan Kuznetsov

Ivan Kuznetsov

    Member

  • Posters
  • 346 Сообщений:

Отправлено 07 Март 2008 - 23:48

Здравствуйте!

Пытался перейти со старого drweb-postfix на конфигурацию с Maild. Не удается настроить maild-postfix на корректную работу.

Имеем: несколько входных MX-серверов, роутящих почту по SMTP на внутренний сервер с Postfix (RHEL4.5). Postfix далее скидывает принятую почту по LMTP cyrus'у. Поток почты довольно большой - до нескольких сообщений в секунду. Соответственно, в очередях обычно что-то есть. Без Maild все работает нормально.

Postfix торможу. Устанавливаю Maild на внутренний сервер (сложности настройки на живом комплексе опущены). Запускаю Postfix - почта с MX'ов начинает со свистом (напоминаю про нагрузку) приниматься Postfix'ом и попадает Maild. Он делает, что положено (очередь, Drwebd...) - до момента отправки почты обратно Postfix'у через Sender. Sender начинает ругаться:

Mar 7 22:43:35 hippo drweb-sender: [3054148512] sender INFO start processing msg 0000007D ...
Mar 7 22:43:35 hippo drweb-sender: [3054148512] sender.RequestQueue INFO put msg [from: ; to:; id: 0000007D] to queue for processing after 0 sec
Mar 7 22:43:35 hippo drweb-sender: [3046468512] sender INFO get msg [from: ; to:; id: 0000007D] from queue for processing...
Mar 7 22:43:35 hippo drweb-sender: [3046468512] sender.SmtpDeliverMethod WARN Router hard error for address
Mar 7 22:43:35 hippo drweb-sender: [3046468512] sender.SmtpDeliverMethod ERROR Fatal error for 1 rcpts
Mar 7 22:43:35 hippo drweb-sender: [3046468512] sender.MailDeliverSystem INFO send notifying for msg [from: ; to: ; id: 0000007D] ...
Mar 7 22:43:35 hippo drweb-sender: [3053124512] sender INFO start processing msg 00000080 ...
Mar 7 22:43:35 hippo drweb-sender: [3053124512] sender.RequestQueue INFO put msg [from: ; to:; id: 00000080] to queue for processing after 0 sec
Mar 7 22:43:35 hippo drweb-sender: [3045956512] sender INFO get msg [from: ; to:; id: 00000080]
from queue for processing...
Mar 7 22:43:37 hippo drweb-sender: [3045956512] sender.SmtpDeliverMethod WARN Router hard error for address
Mar 7 22:43:37 hippo drweb-sender: [3045956512] sender.SmtpDeliverMethod ERROR Fatal error for 1 rcpts
Mar 7 22:43:37 hippo drweb-sender: [3045956512] sender.MailDeliverSystem INFO send notifying for msg [from: ; to:; id: 00000080] ...
Mar 7 22:43:37 hippo drweb-sender: [3052100512] sender INFO start processing msg /var/drweb/msgs/tmp/notifier.DzGaKr/ ...
Mar 7 22:43:37 hippo drweb-sender: [3052100512] sender.RequestQueue INFO put msg [from: ; to:;
id: absegwYMD] to queue for processing after 0 sec
Mar 7 22:43:37 hippo drweb-sender: [3051076512] sender INFO start processing msg 0000007F ...
Mar 7 22:43:37 hippo drweb-sender: [3051588512] sender INFO start processing msg 0000007E ...
Mar 7 22:43:37 hippo drweb-sender: [3051588512] sender.RequestQueue INFO put msg [from: ; to:; id: 0000007E] to queue for processing after 0 sec
Mar 7 22:43:37 hippo drweb-sender: [3046468512] sender.MailDeliverSystem INFO success send request for msg [from: ; to:; id: 0000007D] to drweb-notifier component
Mar 7 22:43:37 hippo drweb-sender: [3046468512] sender INFO get msg [from: ; to:; id:
0000007E] from queue for processing...
Mar 7 22:43:37 hippo drweb-sender: [3046468512] sender.SmtpDeliverMethod WARN Router hard error for address
Mar 7 22:43:37 hippo drweb-sender: [3046468512] sender.SmtpDeliverMethod ERROR Fatal error for 1 rcpts
Mar 7 22:43:37 hippo drweb-sender: [3046468512] sender.MailDeliverSystem INFO send notifying for msg [from: ; to:
; id: 0000007E] ...

Т.е. Sender ничего никуда не может отправить - даже отлупы на av-master@solvo.ru. В логах Postfix'а никаких сведений о попытках Sender'а ему чего-то передать не обнаружено. Все, больше следов этих сообщений нет ни в очередях Postfix'а, ни в базе Maild. Т.е. эти сообщения благополучно пропадают :((

Кусок из maild-postfix.conf:

[Sender]
UseSecureHash = no
SecureHash = "..............."
StalledProcessingInterval = 10m
SendingIntervals = 0s, 30s, 60s, 10m, 30m, 1h, 2h
Method = smtp
MailerName = Postfix
Address = inet:3006@localhost
Options =
InMaxThreads = 16
OutMaxThreads = 16
HeloCmdTimeout = 5m
MailFromCmdTimeout = 5m
RcptToCmdTimeout = 5m
DataCmdTimeout = 2m
DataBlockTimeout = 3m
EndOfDataTimeout = 10m
OtherCmdsTimeout = 2m
PipeTimeout = 2m
SendDSN = yes

Кусок из master.cf:

scan unix - - n - 10 smtp
-o smtp_send_xforward_command=yes
127.0.0.1:3006 inet n - n - 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_authorized_xforward_hosts=127.0.0.0/8

Кусок из main.cf:

content_filter = scan:127.0.0.1:3005
receive_override_options = no_address_mappings

#2 Anton Ivanov

Anton Ivanov

    Advanced Member

  • Posters
  • 842 Сообщений:

Отправлено 19 Март 2008 - 10:30

пришлите пожалйста еще debug логи - можно только drweb-sender`а (установиви Logging/Level в debug)

#3 Ivan Kuznetsov

Ivan Kuznetsov

    Member

  • Posters
  • 346 Сообщений:

Отправлено 19 Март 2008 - 11:14

Я сейчас пытаюсь воспроизвести проблему на тестовой системе, ибо еще раз терять активную почту категорически не хочется

#4 Ivan Kuznetsov

Ivan Kuznetsov

    Member

  • Posters
  • 346 Сообщений:

Отправлено 25 Март 2008 - 14:58

Воспроизвел проблему на тестовой системе.


Mar 25 13:18:05 pine drweb-sender: [3060149152] sender INFO start processing msg 00000003 ...
Mar 25 13:18:05 pine drweb-sender: [3060149152] sender DEBUG BlockForReadyToWork: m_wait_for_restart=0
Mar 25 13:18:05 pine drweb-sender: [3060149152] sender DEBUG SetMeBusy: set what i busy
Mar 25 13:18:05 pine drweb-sender: [3060149152] sender DEBUG ******* ENVELOPE *********
Mar 25 13:18:05 pine drweb-sender: [3060149152] sender DEBUG FROM:
Mar 25 13:18:05 pine drweb-sender: [3060149152] sender DEBUG TO:
Mar 25 13:18:05 pine drweb-sender: [3060149152] sender DEBUG ****** END ENVELOPE ******
Mar 25 13:18:05 pine drweb-sender: [3060149152] sender DEBUG read mail msg...... ok
Mar 25 13:18:05 pine drweb-sender: [3060149152] sender.RequestQueue INFO put msg [from: ; to:; id: 00000003] to queue for processing after 0 sec
Mar 25 13:18:05 pine drweb-sender: [3060149152] sender.RequestQueue DEBUG AddNewRequest: add new request = /var/drweb/msgs/out/3/00000003/ (sending_number=0)
Mar 25 13:18:05 pine drweb-sender: [3060149152] sender DEBUG SetMeFree: set what i free
Mar 25 13:18:05 pine drweb-sender: [3051957152] sender DEBUG BlockForReadyToWork: m_wait_for_restart=0
Mar 25 13:18:05 pine drweb-sender: [3051957152] sender DEBUG SetMeBusy: set what i busy
Mar 25 13:18:05 pine drweb-sender: [3051957152] sender INFO get msg [from: ; to:; id: 00000003] from queue for processing...
Mar 25 13:18:05 pine drweb-sender: [3051957152] sender DEBUG ReadBody: success loaded msg body with size = 1269
Mar 25 13:18:05 pine drweb-sender: [3051957152] sender DEBUG FindIterInfo check:
Mar 25 13:18:05 pine drweb-sender: [3051957152] sender DEBUG base_resolve: localhost A: Host not found
Mar 25 13:18:05 pine drweb-sender: [3051957152] sender.SmtpDeliverMethod WARN Router hard error for address
Mar 25 13:18:05 pine drweb-sender: [3051957152] sender.SmtpDeliverMethod ERROR Fatal error for 1 rcpts


Вот это непонятно: "base_resolve: localhost A: Host not found". localhost вполне так резолвится:

[kia@pine Linux]$ host -t A localhost
localhost has address 127.0.0.1

#5 Anton Ivanov

Anton Ivanov

    Advanced Member

  • Posters
  • 842 Сообщений:

Отправлено 25 Март 2008 - 16:29

Замените в секции Sender
Address = inet:3006@localhost
на
Address = inet:3006@127.0.0.1

а что выводит:
host -a -t A localhost
?

#6 Ivan Kuznetsov

Ivan Kuznetsov

    Member

  • Posters
  • 346 Сообщений:

Отправлено 25 Март 2008 - 16:59

а что выводит:
host -a -t A localhost
?


[kia@pine ~]$ host -a -t A localhost
Trying "localhost.solvo.ru"
Trying "localhost"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53113
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;localhost. IN A

;; ANSWER SECTION:
localhost. 86400 IN A 127.0.0.1

;; AUTHORITY SECTION:
localhost. 86400 IN NS localhost.

Received 57 bytes from 172.16.80.3#53 in 0 ms
[kia@pine ~]$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search solvo.ru
nameserver 172.16.80.3
nameserver 172.16.80.5
nameserver 195.201.44.254
[kia@pine ~]$ grep hosts /etc/nsswitch.conf
#hosts: db files ldap nis dns
hosts: files dns
[kia@pine ~]$ cat /etc/hosts
127.0.0.1 localhost.localdomain localhost

#7 Ivan Kuznetsov

Ivan Kuznetsov

    Member

  • Posters
  • 346 Сообщений:

Отправлено 25 Март 2008 - 17:08

Address = inet:3006@127.0.0.1


А так работает :)

Это следует понимать, что Sender не умеет резолвить адреса???

#8 Anton Ivanov

Anton Ivanov

    Advanced Member

  • Posters
  • 842 Сообщений:

Отправлено 25 Март 2008 - 17:30

Нет конечно, умеет он резолвить. Просто в Вашем случае не получилось у него разрезолвить. Я передам это тестерам на воспроизведение: если им понадобиться, они зададут в этой ветке еще вопросы.

#9 Ivan Kuznetsov

Ivan Kuznetsov

    Member

  • Posters
  • 346 Сообщений:

Отправлено 25 Март 2008 - 17:45

Тикет T7E2-0883, там подробнее

#10 Ivan Kuznetsov

Ivan Kuznetsov

    Member

  • Posters
  • 346 Сообщений:

Отправлено 25 Март 2008 - 18:20

Если прописать 'Address = inet:3006@pine' (поменяв привязки и рестрикшены у Постфикса), то тоже работает:

Mar 25 18:08:43 pine drweb-sender: [3050503072] sender DEBUG base_resolve: pine A: OK
Mar 25 18:08:43 pine drweb-sender: [3050503072] sender DEBUG DNS: type A for pine.solvo.ru
Mar 25 18:08:43 pine drweb-sender: [3050503072] sender DEBUG Success connect to pine port=3006

Чем Sender'у localhost не понравился?

#11 Valentin Volodin

Valentin Volodin

    Newbie

  • Members
  • 1 Сообщений:

Отправлено 25 Март 2008 - 18:35

Возможно, sender'у не нравится отсутствие в DNS записи localhost.solvo.ru. Если возможно, внесите такую запись в DNS. Или же можно попробовать записать в конфиг MailD localhost как "localhost.", т.е.
Address = inet:3006@localhost.

#12 Ivan Kuznetsov

Ivan Kuznetsov

    Member

  • Posters
  • 346 Сообщений:

Отправлено 25 Март 2008 - 18:43

Вообще-то, если используется штатный gethostbyname(), то до запроса в DNS дело доходить не должно. В /etc/nsswitch.conf указано, что сначала нужно посмотреть в /etc/hosts, а там как раз есть строка для localhost

Впрочем, проверю.

#13 Ivan Kuznetsov

Ivan Kuznetsov

    Member

  • Posters
  • 346 Сообщений:

Отправлено 25 Март 2008 - 19:43

localhost. (т.е. с точкой на конце) работает.

Внимание, вопрос к разработчикам: какой системный вызов использует Sender для разрешения адресов? Похоже, что Sender не пытается обращаться к NSS, а сразу делает запрос через lwres. Причем, получив однократно NXDOMAIN в ответ на 'A? localhost.$domain', считает что дальше и пробовать нечего...


Читают тему: 1

0 пользователей, 1 гостей, 0 скрытых