
Tengo un proceso, un script en Perl, que hace:
while true
check a POP account on a server on the lan
process any email found
write logs - messages found, actions taken, errors
sleep for 15 seconds
Se ejecuta en un servidor Redhat 7.3 (lo heredé, no estoy contento con la antigüedad de esa caja). Se ha quedado sin /etc/inittab como:
spop:2345:respawn:/usr/local/gw/bin/popdmn
Si muere, init lo reinicia.
En los últimos días, el proceso ya no funcionará.a menos queestá extraviado. Cuando simplemente se está ejecutando, nunca inicia sesión en el servidor pop. Tan pronto como se extrae (a través de "strace -Ff -p cat /usr/local/gw/var/popdmn.pid
"), funciona perfectamente.
Como solución alternativa, estoy ejecutando screen en el servidor con un strace en ejecución. Obviamente esto no es lo ideal.
¿Por qué un proceso haría esto? No había visto que esto sucediera antes.
Respuesta1
Creo que me ha picado un antiguo insecto callejero:
https://bugzilla.redhat.com/show_bug.cgi?id=64303
https://bugzilla.redhat.com/show_bug.cgi?id=75709
Este cuadro tiene strace-4.4-4, por lo que parece posible que sea ese error. Parece que esto es autoinfligido, ya que estábamos haciendo esfuerzos mientras intentábamos depurar, y lo empeoramos.
kill -CONT
trabaja para reanudar el proceso.
DefinitivamenteEs hora de actualizar esta caja.
Respuesta2
Supongo que el mayor punto de diferencia es la velocidad y el manejo de la señal.
Con respecto a la velocidad, si el proceso es multiproceso, entonces strace alterará el tiempo, lo que cambiará el comportamiento con respecto a las condiciones de carrera, etc.oinformación de temporización relacionada con el comportamiento del protocolo.
Ejemplo. Digamos que el servidor POP se actualizó y ahora es más cuidadoso al garantizar que un par no haya enviado múltiples comandos POP a la vez. Esto es más útil en un servidor SMTP como medio de prevención de spam.
¿Su proceso observa un comportamiento POP correcto, en el sentido de que espera una respuesta del servidor después de todos y cada uno de los comandos POP? ¿O supone el éxito o espera un período de tiempo entre comandos?
Si captura el tráfico de protocolo real en un caso aprobado y fallido, ¿hay algún signo de violación del protocolo?