Si è suicidato Amavis

Sul server di posta di un cliente si sono verificati negli ultimi giorni alcuni fastidiosi blocchi nell’invio e nella ricezione dei messaggi, blocchi che sono dovuti ad un improvviso e inatteso errore di Postfix
Total
0
Shares

Sul server di posta di un cliente si sono verificati negli ultimi giorni alcuni fastidiosi blocchi nell’invio e nella ricezione dei messaggi, blocchi che sono dovuti ad un improvviso e inatteso errore di Postfix:

Si tratta fondamentalmente di un problema legato al db Berkeley con cui Amavis gestisce i flag di status e i contatori relativi alle scansioni che effettua sui messaggi. Non è un problema necessariamente di corruzione del filesystem, come erroneamente si legge in giro googlando, ma può trattarsi più semplicemente di un limite fisico nelle transazioni sopportabili da Amavis in una determinato scenario – su quel server ci sono quasi 800 mailbox attive – oppure dell’interazione con altri script che, in determinate situazioni, forzano il riavvio del demone di Amavis magari proprio mentre cerca di allocare un volume di dati anomalo nel db Berkeley.

Non ce ne frega niente, non è questo il punto: in uno scenario di emergenza del genere non si può procedere con benchmark e fine tuning perché possono richiedere giorni. Bisogna risolvere il problema a e basta.

La soluzione più semplice è intervenire con uno script in bash da far girare in cron ogni 5 minuti, script che controlla le code di posta in uscita e, se trova più di 50 messaggi fermi effettua le seguenti operazioni:

  1. ferma Amavis
  2. rimuove completamente il db Berkeley
  3. riavvia Amavis, il quale ricreerà ex novo il db Berkeley
  4. riavvia Postfix
  5. ordina a Postfix di effettuare il flush della coda di posta in uscita

Se vi dovesse servire, ecco lo script:

Questo script funziona perfettamente sui sistemi basati su Debian GNU/Linux e suoi derivati, per farlo funzionare su altre distribuzioni potrebbe essere necessario aggiornare le posizioni dei file e delle directory relative ai servizi da riavviare e al db Berkeley.

Fonte: https://goo.gl/h3sUdO

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ti potrebbe interessare anche