martes, noviembre 17, 2009

Oscuros problemas

Buenas hackers,

Hoy vengo con entrada rápida. Estas son el tipo de cosas que me gusta contar para que luego ustedes no se peguen 2 días para resolverlo (como me ha pasado a mí), sino 30 segundos.

Resulta que tras una larga cadena de cosas raras en mi sistema y tras la lectura de cientos de líneas de log y miles de código, me doy cuenta de que cierto driver al arrancar no puede crear un fichero que usan programas de esa suite como cerrojo con el mensaje de que el dispositivo esta lleno... todo sería lógico si no fuera porque el disco de donde tira estaba al 70%... unos 100 mb... así que o el cerrojo ese es jodidamente grande, o aquí pasa algo raro... bueno, sobra decir que lo que pasaba era lo raro jejeje. Después de pensarlo un tiempo lo que ocurría era que, efectivamente estaba lleno... pero no el dispositivo, ¡sino el sistema de ficheros que en él había!. Se había llegado al máximo número de inodes en ese sistema de ficheros debido a un proceso loco (el cuál ya esta correctamente diezmado) se había puesto a crear ficheros muy pequeños (ocupaban más metadatos que datos de hecho), pero en gran cantidad así que me lleno el número máximo de ficheros ocasionando el mensaje de que el dispositivo estaba lleno... solemos pensar que un dispositivo sólo se llena si se ocupa todo su espacio, de hecho es lo correcto, pero resulta que si se llena el sistema de ficheros, éste le echa la culpa al dispositivo, manda huevos.

Por cierto, que lo pueden comprobar con el comando stat (man stat), bastó con hacer un rm de los gordos dentro de la superpoblada carpeta y todo como la seda.

Moraleja, cuando te digan que algo está lleno preguntate qué cosas pueden llenar eso... en mí caso la inspiración me vino pensando en las quotas... existen para el espacio y para los inodes.

Otra cosa, no confundan inodes con número de ficheros, suele usarse indistintamente, pero realmente no son equivalentes (no hay relación biyectiva)... softlinks, hardlinks...

Happy hacking!