Así como hay días buenos y días malos, también los hay en semanas y en años. Esta semana promete ser malísima. Algunos problemas que pasaron a ser menores cuando me encontré con lo siguiente:
Filesystem "sda5": <strong>XFS internal error</strong> xfs_bmap_read_extents(1) at line
4565 of file fs/xfs/xfs_bmap.c. Caller 0xc02e7c99
[<c02ca11e>] xfs_bmap_read_extents+0x488/0x4a2
[<c02e7c99>] xfs_iread_extents+0xa0/0xbb
[<c02e5b5f>] xfs_iext_realloc_direct+0xb3/0xc1
[<c02e7c99>] xfs_iread_extents+0xa0/0xbb
[<c02c2a54>] xfs_bmap_last_offset+0x94/0xdc
[<c02d5269>] xfs_dir2_isblock+0x1b/0x60
[<c0324085>] __make_request+0x384/0x495
[<c02d59fb>] xfs_dir_lookup+0x8e/0xeb
[<c02c7615>] xfs_bmapi+0x25b/0x1fd7
[<c02fb04f>] xfs_dir_lookup_int+0x2c/0xd4
[<c01230c4>] down_write+0x8/0x10
[<c02e41ad>] xfs_ilock+0x47/0x67
[<c02fe944>] xfs_lookup+0x50/0x76
[<c05ff4cc>] __mutex_lock_slowpath+0x1ac/0x1b4
[...]
Esa es una de las particiones de un servidor con problemas. Luego continúa:
# xfs_repair -n /dev/sda5
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- scan filesystem freespace and inode maps...
- found root inode chunk
[...]
Phase 6 - check inode connectivity...
- traversing filesystem starting at / ...
entry "etc" in directory inode 128 points to free inode 1310848, would
junk entry
corrupt dinode 786561, (btree extents). <strong>This is a bug.
Please report it to xfs@oss...</strong>
El énfasis es mío. Hay que notar que la opción -n de xfs_repair indica que muestre lo que haría, pero no toma acción alguna. Previamente, xfs_check también se lució con:
# xfs_check /dev/sda5
[...]
dir 1310848 block 8388608 extra leaf entry fc4e7e74 e7
dir 1310848 block 8388608 extra leaf entry fcdbb5f3 8f
dir 1310848 block 8388608 extra leaf entry fddcbf74 164
/usr/bin/xfs_check: line 28: 14691 <strong>Segmentation fault</strong>
xfs_db$DBOPTS -i -p xfs_check -c "check$OPTS" $1
Buscando por aquí y por allá, me encontré con 2 posibles alternativas:
-
Memoria RAM con problemas, de donde se hayan guardado datos corruptos en disco.
-
Un fallo en el módulo XFS del núcleo.
Se trataba de memorias ECC, pero de todas formas probé con memtest para descartar la primera posibilidad. Se trata de un fallo.
Afortunadamente, los problemas no ocurrían en la fase 1 ó 2, sino que bien avanzado. XFS está hecho para ser utilizado en hardware robusto. Un reset de un dispositivo SCSI o IDE, que a veces se dejan ver en los registros del sistema, es razón suficiente para causar corrupción de datos en el sistema de archivos. No es el caso, pero sirve para ejemplificar la situación.
Al menos, después de la recuperación, en el directorio lost+found quedaron guardados archivos completos. No pedazos de datos que usualmente veía con ext2/ext3 (cuando habían problemas).
Justo en un mal momento. En una mala semana. Me ha consumido muchas horas y concentración. La planificación de mis estudios se me fue a las pailas. Aún quedan datos por verificar y reconstruir.