Página 1 de 1

Servitimbre ejecutándose 24h x 7d - Se traba la máquina

Publicado: Vie Feb 01, 2013 7:21 pm
por jzaldivar
ServiTimbre se está ejecutando contínuamente en el servidor de archivos (Windows XP SP3) desde un directorio de red (I:\ServiTimbre), supervisando un directorio de red (I:\SAT\CFD). Los recursos de red están en el mismo servidor. Servitimbre se automáticamente al iniciar sesión en el equipo (Inicio > Programas > Inicio), pero en realidad la máquina permanece prendida contínuamente, incluso los fines de semana.

Desde que pusimos en producción Servitimbre han venido sucediendo errores "raros".

1) Al tratar de acceder al servidor desde otras máquinas, ya sea para acceder a archivos o para ejecutar programas obtenemos el error: "Espacio de almacenamiento insuficiente en el servidor para procesar este comando".

Una vez que se genera este error, se hace imposible acceder a cualquier unidad o directorio del servidor.

Después de que se genera este error, es posible que el servidor esté trabado o no. Si no está trabado y se intenta acceder a la red desde el servidor (o sea, acceder a él mismo pero usando la unidad de red asignada), entonces se traba.

En internet se sugiere remediar este error aumentando el valor de la clave de registro IRPStackSize. Lo acabo de elevar a 25 (decimal) y voy a esperar a ver qué sucede (estaba en 18 decimal).

2) De repente Servitimbre deja de trabajar: ni genera el XML, ni lo timbra, ni (obviamente) imprime el PDF. Si se cierra Servitimbre y se vuelve a iniciar, siempre manda el TXT a la carpeta de inválidos. El error que marca el archivo de error (txt2xml) es:

Access violation at address 005D7FD8 in module 'ServiTimbre.exe'. Read of address 000002F8

Es necesario pedirle a todos que salgan de la red para poder reiniciar el servidor y después copiar a mano los archivos TXT de la carpeta de inválidos a la carpeta supervisada y entonces Servitimbre ya los procesa correctamente.

Sospecho que Servitimbre no está liberando memoria o recursos de manera adecuada (memory leak), ¿será?

Re: Servitimbre ejecutándose 24h x 7d - Se traba la máquina

Publicado: Vie Feb 01, 2013 8:44 pm
por Dado
Si, pudiera ser un memory leak, para ello trata de tener abierto el Administrador de tareas y supervisa si a lo largo del tiempo crece y crece la memoria que ocupa, por supuesto debe haber una variacion normal, pero no debe crecer sin control

Yo podria dejar toda la noche el ST funcionando, pero si no lo alimento con TXT para procesar dificilmente puedo ver el desempeño de la memoria

Ahora, por el "IRPStackSize" sospecho mas que es otra cosa

Segun esto ese parametro dice que "especifica el número de ubicaciones de pila en paquetes de solicitud de E/S (IRP) que se utilizan" eso me suena mas a un problema con la forma en que el ST supervisa la carpeta, talvez bloquea (y no libera) los recursos que necesita para hacer esta supervision

No tienes forma de configurar el Servitimbre para que procese de forma local? que no supervise una carpeta de red

Otra opcion (se que no es lo mejor pero puede funcionar) es que el Servitimbre se apague y se reinicie automaticamente por ejemplo a las 2am eso liberaria cualquier memoria y/o recurso que tenga

Re: Servitimbre ejecutándose 24h x 7d - Se traba la máquina

Publicado: Mié Feb 13, 2013 5:53 pm
por jzaldivar
Ya estube checando algunas cosas.

1) No sé si la memoria este creciendo contínuamente pero cuando he ido a checar la máquina, el uso de memoria del ServiTimbre es de unos 11 MB, tanto al iniciar como cuando lleva un tiempo funcionando. Cuando ha habido problemas de "el servidor no tiene recursos suficientes...", el Servitimbre está usando unos 20 MB de memoria, pero no he observado que vaya creciendo paulatinamente: o usa 11 MB y está bien o usa 20 MB y está mal.

2) Con respecto a lo de dejar el Servitimbre funcionando toda la noche aunque no se le alimenten TXT contínuamente, esa sería una situación similar a la nuestra, nuestro volumen de facturación es bajo y hay días en que no se factura nada, sin embargo el Servitimbre sigue ahí, supervisando. De hecho, como me doy cuenta que algo falló es o porque nos sale ese mensaje de "recursos insuficientes" o porque se realiza una factura y no se imprime (la impresión está a cargo de Servitimbre).

3) Le subí el IRPStackSize como lo comenté en mi primer mensaje, pero el problema no se corrigió.

4) Unas pequeñas estadísticas. El servidor corre un programa que graba un log cada que se inicia y dicho programa se inicia al iniciar sesión en el equipo, así que me pude dar cuenta de la frecuencia con que se ha tenido que reiniciar el servidor. El año pasado, se reinició en promedio cada 15 días. Este año se ha reiniciado en promedio cada 3 días. Hago la aclaración de que las reinicializaciones del año pasado incluyen casos en que se fue la luz, o por la instalación de algún nuevo programa o por instalación de actualizaciones de Windows, no sólo porque el servidor se haya trabado. Las de este año son sólo porque se traba o porque Servitimbre deja de funcionar.

5) También reitero, cuando Servitimbre deja de funcionar y se reinicia sin reiniciar la máquina, se genera un archivo en la carpeta de inválidos con la leyenda de "Access violation".

Sobre tus sugerencias:

Acabo de programar para que Servitimbre se apague y encienda automáticamente una vez al día, a ver si se elimina el problema. Lo malo es que ya tenemos la experiencia de apagar (manualmente) el Servitimbre y reiniciarlo sin éxito, pero a ver que pasa.

Sobre lo de ejecutar Servitimbre de manera local, preferiría no hacerlo ya que me parece mucho más sencillo tener la operación centralizada: Ejecutar un solo Servitimbre, administrando un único juego de certificados, supervisando una única carpeta y que todas las estaciones de trabajo escribieran en dicha carpeta. Creo que el enfoque local de "cada estación con su propio Servitimbre" más que "distribuido" sería redundante, de alto mantenimiento y propenso a errores (como hay que duplicar, triplicar, etc. todo: instalación, configuraciones, actualizaciones, etc., se multiplica la posibilidad de cometer un error en alguno de los pasos - pregúntale a Murphy).

¿Podrías hacer la prueba que comentabas de dejar a Servitimbre ejecutándose contínuamente, sin que tengas que estar alimentándole TXT contínuamente, para ver si detectas el problema?

Re: Servitimbre ejecutándose 24h x 7d - Se traba la máquina

Publicado: Mié Feb 13, 2013 8:14 pm
por Dado
OK, voy a dejarlo funcionando toda la noche

Re: Servitimbre ejecutándose 24h x 7d - Se traba la máquina

Publicado: Jue Feb 14, 2013 9:43 am
por Dado
Prueba finalizada, resultado : no hay nada raro, si aumento poco menos de un mega, pero sigue estando en parametros normales

Re: Servitimbre ejecutándose 24h x 7d - Se traba la máquina

Publicado: Lun Feb 25, 2013 6:23 pm
por jzaldivar
Pues aquí sigo igual. Lo único que ha mejorado es que ya no tengo que reiniciar la máquina cada tres días, ahora sólo es necesario reiniciar la sesión (usuario limitado, por cierto), igualmente cada tres días.

No sé si la mejora sea porque estamos cerrando y reiniciando el ServiTimbre cada 24 horas (mediante un archivo Apagar.xml copiado por el programador de tareas de Windows) o porque los usuarios están más ariscos y atentos a cualquier falla y la reportan antes de que ServiTimbre tenga oportunidad de causar más estragos.

Por ejemplo, ahorita me acaba de reportar un usuario que el menú de su aplicación estaba "cortado", fui a ver que pasaba y sí, había opciones que por su nivel de acceso deberían aparecerle y no estaban ahí, como ese programa verifica la existencia de los archivos necesarios en disco (obviamente del servidor) antes de hacer visibles las opciones la sospecha es una falla del servidor. Efectivamente, al abrir una ventana de Explorer y tratar de acceder a un disco de red, falla con el consabido mensaje de: "recursos insuficientes en el servidor..."

ServiTimbre se había reiniciado a las 14:26 y el servidor falló a las 19:00. El problema se corrigió simplemente al cerrar la sesión de usuario del servidor. ServiTimbre estaba usando 11MB de memoria, lo mismo que recién iniciado.