postgresql-8.4 - ERROR: invalid memory alloc request size 4294967293

Victor Hugo dos Santos listas.vhs en gmail.com
Lun Ene 3 18:24:06 CLST 2011


Hola a todos,

Utilizo postgresql (8.4.6-0ubuntu10.04) junto a bacula, para guardar
informaciones sobre los respaldos realizados.
el tema es que todas las noches, el servidor realiza un dump (pg_dump)
de la BD para luego respaldar la BD.

esto ha funcionaba bien hasta que fallo !!! :D

el error que me sale en el bacula es:
====================
02-Jan 06:32 bacula-dir JobId 31005: BeforeJob: pg_dump: SQL command failed
02-Jan 06:32 bacula-dir JobId 31005: BeforeJob: pg_dump: Error message
from server: ERROR:  invalid memory alloc request size 4294967293
02-Jan 06:32 bacula-dir JobId 31005: BeforeJob: pg_dump: The command
was: COPY public.file (fileid, fileindex, jobid, pathid, filenameid,
markid, lstat, md5) TO stdout;
02-Jan 06:32 bacula-dir JobId 31005: BeforeJob: pg_dumpall: pg_dump
failed on database "bacula", exiting
====================

al revisar los logs del postgresql

====================
2011-01-02 06:31:07 CLST ERROR:  table "delcandidates" does not exist
2011-01-02 06:31:07 CLST STATEMENT:  DROP TABLE DelCandidates
2011-01-02 06:32:15 CLST ERROR:  invalid memory alloc request size 4294967293
2011-01-02 06:32:15 CLST STATEMENT:  COPY public.file (fileid,
fileindex, jobid, pathid, filenameid, markid, lstat, md5) TO stdout;
2011-01-02 06:32:15 CLST LOG:  could not receive data from client:
Connection reset by peer
2011-01-02 06:32:15 CLST LOG:  unexpected EOF on client connection
====================

he buscado durante todo el dia en internet y la verdad es que hay
algunos casos donde existe el mismo error (incluyendo el valor
4294967293), pero ninguna soluccion favorable.

- algunos comentan que puede ser problema con la memoria, pero he
ejecutado memtest varias veces y zero errores (son memorias ECC en
RAID)
- otros problema de disco.. he revisado el sistema de archivo con
"efsck" pero tampoco arroja problemas
- ademas he movido la carpeta de datos de postgresl
"/var/lib/postgresql/8.4/main/base" para
"/var/lib/postgresql/8.4/main/base-old", luego copiado el contenido de
"/var/lib/postgresql/8.4/main/base-old" para
"/var/lib/postgresql/8.4/main/base" y asi revisar si habian
inodes/blocks malos, pero "cp" no reclamo.
- tampoco reclama postgresl al iniciar..

pero al intentar ejecutar el pg_dump me sale el mismo error y si
intento ejecutar el commando COPY dentro de postgresql tambien me sale
error..

el raro es que ejecutando esto:

=========
su - postgres -c "psql bacula -c 'COPY public.file (fileid, fileindex,
jobid, pathid, filenameid, markid, lstat, md5) TO stdout'" | wc
ERROR:  invalid memory alloc request size 4294967293
1417599 32604777 173355793

su - postgres -c "psql bacula -c 'COPY public.file (fileid, fileindex,
jobid, pathid, filenameid, markid, lstat, md5) TO stdout'" | wc
ERROR:  invalid memory alloc request size 4294967293
    114    2622   14192

su - postgres -c "psql bacula -c 'COPY public.file (fileid, fileindex,
jobid, pathid, filenameid, markid, lstat, md5) TO stdout'" | wc
ERROR:  invalid memory alloc request size 4294967293
    114    2622   14192
=========

el primero llega hasta el registro 1417599, el segundo y tercero hasta el 114
luego, se reinicio el postgresql y ejecuto el mismo comando:


=========
su - postgres -c "psql bacula -c 'COPY public.file (fileid, fileindex,
jobid, pathid, filenameid, markid, lstat, md5) TO stdout'" | wc
ERROR:  invalid memory alloc request size 4294967293
1417599 32604777 173355793

root en bacula:/var/respaldo# su - postgres -c "psql bacula -c 'COPY
public.file (fileid, fileindex, jobid, pathid, filenameid, markid,
lstat, md5) TO stdout'" | wc
ERROR:  invalid memory alloc request size 4294967293
    114    2622   14192
=========


mmmm.. la verdad ya no me ocurren ideas !!!!
de verdad no creo que sea el servidor....

alguien tiene alguna sugerencia ???

salu2 y atento
-- 
--
Victor Hugo dos Santos
Linux Counter #224399


Más información sobre la lista de distribución Linux