Error procesamiento de actas

Hola, el parametro protected static $cache_expiration está en una hora como lo tenes vos. Hoy ingresé a autogestión a las 15.10, cargué notas, tome asistencia y me apareció el error a las 15.16.
Sale un cartel blanco que dice “error”.
No se puede navegar entre las pestañas dentro de “Clases”, como por ejemplo pasar de asistencia a temas, o guardar una asistencia.
Pero si me voy de “Clases” al apartado “Examenes” por ejemplo, me deja moverme sin problemas. Y si vuelvo a Clases me deja volver a caegar la asistencia.

Hola Joaquin,

¿como tenes el parámetro manejador_cache_memoria en instalacion/config.php, lo tenes con el valor “apc” o “memcached”?

En caso de ser “memcached” habría que revisar los servidores en el directiva memcached de instalacion/config.php.

En la función recuperar_de_cache de src/siu/modelo/entidades/fuente_rs_guarani.php podes agregar lo siguiente al log:


$cache = $this->get_cache();
klog2("=== clase de cache ===", get_class($cache));

En mi caso en los logs escribe:


--  === clase de cache ===  ----------------------------------------------------

SIU\Chulupi\util\cache\CacheMemoriaApc

saludos.
2

Hola, nosotros tenemos el parámetro manejador_cache_memoria con el valor “apc”.
Saludos

Hola Joaquin,

Es algo extraño, parece que la cache expira antes de lo esperado.

Podes revisar la configuración de apc, en especial apc.ttl, apc.gc_ttl. Te dejo captura de mi phpinfo() para que lo compares.

saludos.
2


Screenshot 2022-07-12 at 09-46-02 PHP 7.4.21 - phpinfo().png

Screenshot 2022-07-12 at 09-46-02 PHP 7.4.21 - phpinfo().png

Hola, disculpame, pero no encuentro la ruta para ver la configuración de apc del sistema.
¿Me podrias orientar?
Muchas gracias!

Si es un ambiente de pruebas podes poner lo siguiente en src/siu/www/index.php:


<?php

phpinfo();
exit();

Esto va a hacer que cuando ingreses a autogestión te muestre el phpinfo, luego busca “apc” y vas a ver la configuración de la extensión apc/apcu.

Luego recorda deshacer el cambio en src/siu/www/index.php.

saludos.
2

Adjunto captura de como tenemos la configuracion de apc. Solamente tenemos diferente la versión(5.1.19) y serializacion support, en la que solamente tenemos php.
Luego los demás parámetros los tenemos identicos a los suyos.
Saludos.


capturaapcu.png

capturaapcu.png

Hola Joaquin, gracias por la captura!!!

Lo que puede llegar a estar pasando es que se este llenando la memoria de APCu y esta borre todas las entradas de la misma.

Proba aumentando la directiva apc.shm_size y poniendo la directiva apc.ttl en 3600.

Revisa estos hilos de referencia:
https://anavarre.net/how-to-monitor-and-tune-apcu/
https://stackoverflow.com/questions/1053810/php-apc-what-happens-when-apc-cache-is-full

saludos.
2

Hola, para aumentar las directivas, ¿Tengo que agregarlas en php.ini? Ya que las estoy buscando dentro del php.ini de /etc/php/7.4/apache2/
y de /etc/php/7.4/cli/ y no me aparecen los parámetros para modificarlos.
Gracias.

Hola Joaquin,

Claro, lo agregas al final de php.ini (es especial en /etc/php/7.4/apache2/ que es el web), ej:


apc.shm_size = 128M                                                                                
apc.ttl = 3600

Luego reinicias Apache y volve a revisar el phpinfo para ver si tomo los cambios.

saludos.
2

Hola, se aplicaron los cambios correctamente, pero el error volvió a aparecer luego de 15 minutos de iniciada la sesión. Adjunto imagen con los cambios aplicados.
Saludos.


Captura de pantalla de 2022-07-13 11-28-14.png

Captura de pantalla de 2022-07-13 11-28-14.png

¿En los logs de Apache te esta dando algún warning/error con respecto a APC, ej “Unable to allocate memory for pool”?

Revisa los siguientes posts:
https://stackoverflow.com/questions/3723316/what-is-causing-unable-to-allocate-memory-for-pool-in-php
https://www.deeson.co.uk/blog/how-solve-unable-allocate-memory-pool
https://techglimpse.com/linux-php-error-unable-allocate-memory-pool-solution/

Proba con una configuración similar a la de este hilo: https://www.deeson.co.uk/blog/how-solve-unable-allocate-memory-pool

Revisa la directiva apc.mmap_file_mask, fíjate la solución de este hilo: https://stackoverflow.com/questions/3723316/what-is-causing-unable-to-allocate-memory-for-pool-in-php

saludos.
2

En los logs de apache no aparece ningún error con respecto a APC. El error que nos sale es el mismo que adjunte al comienzo del tema, en instalacion/log/des01/.
La directiva apc.mmap_file_mask es “No value”.
Además aumentamos la directiva apc.ttl a 7200 y apc.shm_size a 256, pero no sirvió.
Saludos.

Hola Joaquin,

Proba cambiando la directiva apc.mmap_file_mask a los siguientes valores:


For file-backed mmap, it should be set to something like:
apc.mmap_file_mask=/tmp/apc.XXXXXX

To mmap directly from /dev/zero, use:
apc.mmap_file_mask=/dev/zero

For POSIX-compliant shared-memory-backed mmap, use:
apc.mmap_file_mask=/apc.shm.XXXXXX

Referencia:
https://stackoverflow.com/questions/3723316/what-is-causing-unable-to-allocate-memory-for-pool-in-php
https://www.enmimaquinafunciona.com/pregunta/21315/que-apcmmap_file_mask-hacer-realmente

saludos.
2

Hola, cambiamos las directivas apc.mmap_file_mask y le asignamos los valores recomendados. Pero no funcionó.
Además actualizamos php7.4-apcu a la version 5.1.21 y probamos modificando los valores de los parámetros apc.mmap_file_mask porque quizás era un tema de versión desactualizada, pero tampoco funcionó.
Incluso replicamos los mismos valores de php.ini de test, ya que en esa instancia no ocurre el error.
En este punto se nos acabaron las ideas, ojala puedan darnos una mano. Muchas gracias.

Hola Joaquin,

¿ustedes tendrán croneado para que corra el comando bin/guarani limpiar_cache?
¿tienen alguna personalización que llame a la función catalogo::limpiar_cache?
¿los logs de Apache y 3W siguen mostrando exactamente lo mismo?
¿podes probar desinstalando y volviendo a instalar la extensión apc y apcu?

saludos.
2

Hola

Nos pueden comentar adicionalmente la arquitectura de esa instalación. ¿Tienen un solo nodo de autogestion, o varios nodos?, ¿algún proxy adelante?. Todo lo que puedan contarnos que nos pueda ayudar a resolver el problema!

Saludos!

Hola. Ya encontramos el error! Nos fijamos en el crontab y efectivamente teniamos un proceso que lo paramos y se solucionó el problema. Muchisimas gracias!

Hola Joaquin, me alegro que lo pudieron solucionar!!!

No deberían limpiar cache con un cron, ya que la zona de Cursada, Clases y Exámenes del perfil docente carga en cache datos de la comisión, clase o examen en cuestión, con lo cual no si borras la cache perdes la “zona” en la cual estas parado.

saludos.
2

Solución de UCA para el GDS 68673:
Se modificó el php.ini del apache2 con estos parámetros:

[APCu]
apc.shm_segments = 4
apc.shm_size = 128M
apc.ttl = 600
apc.gc_ttl = 600