Esta semana, haciendo una migración de un servidor, descubrimos (los 2 que estabamos migrandolo) un cambio de comportamiento en un script de Perl que usa la combinación opendir/readdir, resulta que el servidor original tenía ext3 en sus sistemas de archivos, y el nuevo reiserfs (defaults de RHEL 5 y SUSE 10.2 respectivamente), el caso es que en el primero el “readdir” devolvía los archivos en el orden en el que fueron modificados descendetemente, es decir, el mas nuevo primero.
En el servidor con reiserfs el orden es bastante “aleatorio”, no es que cambie, sino que no tiene un orden facilmente entendible, entonces mi compañero se puso a hacer un parche al script para ordenar algo que antes no lo requería, hasta que de repente mientras me platicaba de comportamiento normal del “stat” y el “readdir”, caí en cuenta que el nuevo server había cambiado de sistemas de archivos, y bueno, una googleada ligera resulta darnos la respuesta obvia, reiserfs tiene unas tablas raras, que no prentendo entender, para organizar los archivos, y que no tienen nada que ver con parametros como su creacion, modificación, etc.
Se menciona por ejemplo que reiserfs puede mostrarte “.” y “..” (aqui y abajo de aqui) intercalados entre los archivos, lo cual es bastante raro, pero pues así furula reiserfs (no tenemos porque comprender el comportamiento ni de el sistema de archivos ni de su creador).
En fin, ahi queda el tip para cuando alguno de los que lean esta nota lo tenga en mente pa futuros movimientos de sistemas de archivos y el uso de readdir en particular.