[Madrid-pm] Feliz año nuevo, y una cuestion

Jose Manuel de Arce jose.de.arce en gmail.com
Jue Ene 8 01:42:30 PST 2009


Estimados,

lo primero, felicitar el año nuevo a todos.

Ahora me animo a describir una situación por si alguien ha tenido una
experiencia parecida.

En linux, slackware, una serie de scripts (en perl, claro) que leen
correo por pop3 y procesan los mensajes se invocan por cron cada
cierto tiempo (5 minutos). Graban algunos ficheros en disco y ya. Esto
funciona desde principios de Diciembre, y al cabo de un tiempo
variable, desde 10 días hasta 2 días, el binario perl ya no funciona,
cualquier invocacion se salda con un "Segmentation Fault".

desde el shell, haciendo perl -v, segmentation fault. El resto de
procesos funciona sin problema y se pueden lanzar otros binarios.

un strace, que es lo que he sabido hacer, (strace perl -v) termina con:
.
.
.
mmap2(NULL, 178476, PROT_READ, MAP_PRIVATE, 3, 0) = 0x401d3000
close(3)                                = 0
open("/dev/urandom", O_RDONLY|O_LARGEFILE) = 3
read(3, "\t\234\224\246", 4)            = 4
close(3)                                = 0
time([1231407045])                      = 1231407045
mmap2(NULL, 135462912, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401ff000
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

Y no tengo otra forma de recuperar la situacion que rebotando.

Parece que algo queda en memoria, sticky, entre invocaciones. los
scripts terminan con normalidad hasta que dejan de hacerlo, y ya no se
puede usar perl.

Parece que el uso repetido,, via cron, y la invocacion muchas veces,
dejara algo en memoria, o en cache, o no sé dónde, que no puedo
vaciar, y provoca lo que describo.

Alguna pista de como evitar esto o como corregir esta situacion sin rebotar?

  Gracias

  josema


Más información sobre la lista de distribución Madrid-pm