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;
– взаймствано инфо от тук.
И така, в крайна сметка проблема ми с пощенския сървър се оправи и всичко работи както преди 🙂