Debian 8 amavis problem

Debian 8 amavis problemЗдравейте и за много години!

Наложи ми се да правя ъпгрейд на един от главните ми сървъри, който беше с debian 7 и вече е с 8-ца 🙂

Всичко мина долу-горе добре, обаче изникна проблем с amavis-a. Проблема се изразяваше в следното : самият amavisd демон не искаше да тръгва, и съответно в логове се виждаше това :

 

Starting amavisd: syntax error at /usr/sbin/amavisd-new line 1921, near "$pn qw(DEBUG INFO NOTICE WARNING ERR CRIT ALERT EMERG)"
syntax error at /usr/sbin/amavisd-new line 1923, near "$prio : LOG_WARNING"
syntax error at /usr/sbin/amavisd-new line 1929, near "}"
syntax error at /usr/sbin/amavisd-new line 1937, near "}"
syntax error at /usr/sbin/amavisd-new line 1943, near "}"
syntax error at /usr/sbin/amavisd-new line 1963, near "}"
syntax error at /usr/sbin/amavisd-new line 1978, near "}"
syntax error at /usr/sbin/amavisd-new line 1987, near "}"
syntax error at /usr/sbin/amavisd-new line 1990, near "}"
Can't use global @_ in "my" at /usr/sbin/amavisd-new line 1995, near "= @_"
/usr/sbin/amavisd-new has too many errors.
(failed).

Тук проблема се оказа от новата версия на perl , и остарелия amavis ( който беше инсталиран ръчно, чрез

make && make install
). След обновяване през
apt-get install amavis
самият процес тръгна, обаче взе да плюе следното в mail.log-a:
Jan 4 11:10:45 alpha amavis[25842]: (25842-02-6) (!)WARN save_info_final: sql exec: err=1054, 42S22, DBD::mysql::st execute failed: Unknown column 'rseqnum' in 'field list' at (eval 96) line 172.
Jan 4 11:10:46 alpha amavis[25838]: (25838-02-5) (!)WARN save_info_final: sql exec: err=1054, 42S22, DBD::mysql::st execute failed: Unknown column 'rseqnum' in 'field list' at (eval 96) line 172.
Jan 4 11:10:46 alpha amavis[25838]: (25838-02-5) (!!)ERROR sql_storage: too many retries on storing final, info not saved

Тук пък в крайна сметка се оказа, че след версия 2.7 трябвало да се добавят 3 полета в таблица

msgrcpt
и едно в таблица
msgs
. Това става лесно:

ALTER TABLE msgrcpt ADD rseqnum integer DEFAULT 0 NOT NULL;
ALTER TABLE msgrcpt ADD content char(1) DEFAULT ' ' NOT NULL;
ALTER TABLE msgrcpt ADD is_local char(1) DEFAULT ' ' NOT NULL;
ALTER TABLE msgs ADD originating char(1) DEFAULT ' ' NOT NULL;

– взаймствано инфо от тук.

И така, в крайна сметка проблема ми с пощенския сървър се оправи и всичко работи както преди 🙂