lunes, 19 de mayo de 2008

fatal: pgsql:/etc/postfix/sql-pop-before-smtp.cf(0,lock|fold_fix): table lookup problem

Después de seguir el manual de instalación de dbmail con postgres para Ubuntu, no me funcionó correctamente. Después de mucho buscar soluciones a este problema.


May 19 12:41:43 druida postfix/smtpd[3826]: connect from fg-out-1718.google.com[72.14.220.156]
May 19 12:41:43 druida postfix/smtpd[3826]: warning: pgsql query failed: fatal error from host localhost: ERROR: la sintaxis de entrada no es v?lida para tipo inet: ?fg-out-1718.google.com??
May 19 12:41:43 druida postfix/smtpd[3826]: fatal: pgsql:/etc/postfix/sql-pop-before-smtp.cf(0,lock|fold_fix): table lookup problem
May 19 12:41:44 druida postfix/master[3787]: warning: process /usr/lib/postfix/smtpd pid 3826 exit status 1
May 19 12:41:44 druida postfix/master[3787]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling


Me dí cuenta de que en el fichero /var/log/postgresql/postgresql-8.1-main.log tenía el verdadero problema:

2008-05-19 12:41:43 CEST ERROR: la sintaxis de entrada no es válida para tipo inet: «fg-out-1718.google.com»


Al parecer la estructura de la tabla dbmail_pbsp no es totalmente correcta, es posible que es esta nueva versión de dbmail no esté bien definida. Para solucionarlo hay que cambiar el tipo de datos del campo ipnumber, con este script podrás cambiarlo sin perder los datos que ya tienes.

alter table dbmail_pbsp ADD after_ipnumber text;
update dbmail_pbsp set after_ipnumber = cast(ipnumber as text);
alter table dbmail_pbsp drop ipnumber;
alter table dbmail_pbsp rename after_ipnumber to ipnumber;
alter table dbmail_pbsp alter ipnumber set default('0.0.0.0');
commit;


Después de esto el servidor me funciona perfectamente.