lunes, 23 de marzo de 2009

Solución al problema de memory_limit en phpSyslog-ng (con actualización del cache de servidores)

Luego de tener corriendo el Syslog-Ng en nuestros servidores, quise realizar un "Reload Search Cache" y me retornó un mensaje de:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in /usr/share/syslog-ng/includes/common_funcs.php on line 203

Lo primero que intenté fué modificar el valor por default de memory_limit en el php.ini agrandando este mismo hasta 1Gb, cuando imaginé que la solución tendría que venir por otro lado. Al parecer existe un bug en el código fuente del phpSyslog-ng en el archivo common_funcs.php por suerte de fácil solución:

Debemos reemplazar la línea 199


$sql = "SELECT program FROM ".$table." WHERE program RLIKE
'^[a-zA-Z]+[a-zA-Z0-9/()._\-]+$'";

por:

$sql = "SELECT DISTINCT program FROM ".$table."
WHERE LENGTH(program)<80>

luego de correr la actualización se pudo recargar el cache de servidores.


"The search cache has been updated."



No hay comentarios: