Postfix Mysql / Probleme wenn MySQL down

traced

Registered User
Hi,
ich habe hier mehrere Mailserver, die jeweils mit Postfix, ein paar anderen Diensten, und MySQL bestückt sind. Postfix fragt beim Ankommen der Mail in der Datenbank einige Dinge ab:

Code:
relay_domains = mysql:/etc/postfix/mysql-relay_domains.cf
transport_maps = mysql:/etc/postfix/mysql-transport.cf
relay_recipient_maps = mysql:/etc/postfix/mysql-relay_recipients.cf

Das klappt auch wunderbar. Das einzige Problem dass ich sehe ist, dass wenn der MySQL Server, warum auch immer, down ist, gibts nur folgende Fehlermeldungen in der mail.log:

Code:
Dec 19 20:48:17 gate3 postfix/trivial-rewrite[26471]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Dec 19 20:48:17 gate3 postfix/trivial-rewrite[26471]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Dec 19 20:48:17 gate3 postfix/trivial-rewrite[26471]: fatal: mysql:/etc/postfix/mysql-relay_domains.cf(0,lock|fold_fix): table lookup problem
Dec 19 20:48:19 gate3 postfix/trivial-rewrite[26472]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Dec 19 20:48:19 gate3 postfix/trivial-rewrite[26472]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Dec 19 20:48:19 gate3 postfix/trivial-rewrite[26472]: fatal: mysql:/etc/postfix/mysql-relay_domains.cf(0,lock|fold_fix): table lookup problem
Dec 19 20:49:20 gate3 postfix/trivial-rewrite[26477]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Dec 19 20:49:20 gate3 postfix/trivial-rewrite[26477]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Dec 19 20:49:20 gate3 postfix/trivial-rewrite[26477]: fatal: mysql:/etc/postfix/mysql-relay_domains.cf(0,lock|fold_fix): table lookup problem
Dec 19 20:50:21 gate3 postfix/trivial-rewrite[26540]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Dec 19 20:50:21 gate3 postfix/trivial-rewrite[26540]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Dec 19 20:50:21 gate3 postfix/trivial-rewrite[26540]: fatal: mysql:/etc/postfix/mysql-relay_domains.cf(0,lock|fold_fix): table lookup problem
Dec 19 20:50:21 gate3 postfix/trivial-rewrite[26541]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Dec 19 20:50:21 gate3 postfix/trivial-rewrite[26541]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Dec 19 20:50:21 gate3 postfix/trivial-rewrite[26541]: fatal: mysql:/etc/postfix/mysql-relay_domains.cf(0,lock|fold_fix): table lookup problem

Was mich jetzt daran stört ist einfach, dass dem zustellenden Mailserver kein Reject angezeigt wird. Die Mail bleibt einfach in der Queue, und nach ein paar Minuten kommt der nächste (nicht erfolgreiche) Zustellversuch.

Wenn der Reject kommen würde, würde der versendende Mailserver ja auf den nächsten MX ausweichen, so bleibt die Mail in der Queue des Versenders bis ich den MySQL wieder am laufen habe, oder die Mail geht halt zurück.

Kann man dieses Verhalten irgendwie ändern/beeinflussen? Wenn der Postfix die Mail einfach mit einer 4xx oder 5xx Code abweisen würde wäre mir schon geholfen.

Beim versendenen Mailserver sieht das Log so aus:

Code:
Dec 19 21:38:34 ng postfix/qmgr[439]: 14A614574AAE: from=<[email protected]>, size=294, nrcpt=1 (queue active)

Und mehr kommt da einfach nicht?!

Vielleicht habt Ihr ja ne Idee :)

lg Basti
 
Was mich jetzt daran stört ist einfach, dass dem zustellenden Mailserver kein Reject angezeigt wird. Die Mail bleibt einfach in der Queue, und nach ein paar Minuten kommt der nächste (nicht erfolgreiche) Zustellversuch.

Wenn ich bei meinem Server die mysql-DB anhalte, erhalte ich eine andere Warnung (der Fehler tritt allerdings an einer anderen Stelle, nämlich beim smtpd und nicht beim trivial-rewrite auf):
Code:
Dec 19 22:11:15 myserv postfix/smtpd[3415]: warning: mysql query failed: MySQL server has gone away
Dec 19 22:11:15 myserv postfix/smtpd[3415]: NOQUEUE: reject: RCPT from 61-21.106-92.cust.bluewin.ch[92.106.21.61]: 451 4.3.0 <[email protected]>: Temporary lookup failure; from=<[email protected]> to=<[email protected]> proto=SMTP helo=<61-21.106-92.cust.bluewin.ch>
Die temporäre 4xx-Fehlermeldung hat dann bei normalen MTAs den Effekt, dass auf einen anderen MX-Host ausgewichen wird -- den Effekt sehe ich so auch beim Greylisting, bei dem eine 450er-Meldung generiert wird.
 
Last edited by a moderator:
Ich verwende nur folgende Statements:
Code:
$  grep mysql /etc/postfix/main.cf
alias_maps = mysql:/etc/postfix/mysql-aliases.cf
virtual_maps = mysql:/etc/postfix/mysql-virtual.cf
 
Finde ich wirklich seltsam, dass er bei Dir den Reject bringt, und bei mir gar nichts. Das einzige was die Verbindung nach 300Sekunden beendet ist der SMTP-Timeout des versendenden Servers... :confused:
 
Back
Top