Error número 126 en Joomla [Solucionado]
De la noche a la mañana una web desarrollada en Joomla, que iba perfectamente, nos muestra una página con el error 126 al cargar solo una página concreta, el resto de páginas va perfectamente.
La página en cuestión devolvía los resultados de búsqueda de un componente de directorios. En el panel de administración de Joomla todo funciona correctamente, incluso el listado de los recursos del directorio que nos provoca el fallo en el frontend del Joomla también funciona correctamente.
El error 126 viene acompañado de un mensaje que empieza así:
Incorrect key file for table '/tmp/#sql_XXXXX.MYI'; try to repair it SQL=select slec...
Y continúa indicando una enorme consulta que parece quiere que intentemos ejecutar para resolver el problema. Al intentarlo la consulta en cuestión da error SQL.
Todo parece ser un error de corrupción de tablas de la Base de Datos que necesitan ser reparadas. Realizando un "REPAIR TABLE `nombre_tabla`;" para todas las tablas de la Base de Datos tampoco conseguimos subsanar el problema. Incluso haciendo una copia de la Base de Datos o montando una copia anterior en una Base de Datos nueva y tras cambiar los parámetros de acceso al mysql en el fichero de configuración de Joomla, tampoco se soluciona el problema, seguimos con el error 126 en la página en cuestión.
Tras mucho lidiar encontramos la solución, y fue bien sencilla:
Comprobamos el espacio del directorio /tmp del servidor de hosting. Y a pesar de estar tan solo al 70% con 120MB libres, aquí estaba el problema.
SOLUCIÓN:
Tras vaciar el directorio /tmp del servidor el error 126 de la página de Joomla desapareció y quedó solucionado. Es decir hay que comprobar el espacio disponible en el directorio temporal que usa Mysql para realizar consultas, puede ser /tmp, /var/tmp... Dependiendo del número de items (por ejemplo artículos) iguales aconsejable aumentar el espacio de la unidad /tmp; para 1.000.000 de registros puede generar un fichero temporal de casi 4 GB. En Cpanel el directorio /tmp suele estar montado sobre una unidad de 500MB; podría ser que si trabajamos con un gran número de artículos necesitemos aumentar esta cantidad, aunque para evitar esto tenemos las posibilidades de habilitar las caches, tanto en Joomla como en el servidor.