El proceso funciona bajo tensión pero no normalmente.

El proceso funciona bajo tensión pero no normalmente.

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 -CONTtrabaja 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?

información relacionada