Thread (2 messages) 2 messages, 2 authors, 2018-01-22

Re: XFS_Repair - Fatal error -- couldn't map inode - version 4.13.1

From: Brian Foster <hidden>
Date: 2018-01-22 11:21:12

On Sun, Jan 21, 2018 at 02:29:13PM -0500, Jermey Spies wrote:
Hello.

I first want to say I am predominately an end-user with only basic
knowledge of XFS, although I have been reading (and learning) a lot
recently trying to fix an issue that popped up with one of the drives
in an unRAID 6.4 (Slackware 14.2) storage array.

Any help you or any user you direct me to can provide would be deeply
appreciated.

I was directed to seek help from a XFS developer and/or power user
from unRAID's forums when I found that running xfs_repair -L -v on a
partition failed with an error. unRAID includes xfs_repair version
4.13.1, which should be recent.

I have attached a copy of the xfs_repair log from that drive
(xfs_repair -L -v). From what I can see, there seems to be serious
corruption with super-block 12, however, the error occurs with a file
on super-block 2. I have also looked into the odd UUID issue and have
found mostly old bug reports that have been since closed.

I can, with confidence, guarantee this corruption was not caused by an
external power outage or hard-reset (unless there is something wrong
with the back-plane, which I have no reason to suspect). The partition
was actively being written to when an "I/O error" occurred. Upon
attempts to remount the drive, the log shows:

Jan 21 07:38:13 SRV58302 kernel: XFS (md5): Mounting V5 Filesystem
Jan 21 07:38:13 SRV58302 kernel: XFS (md5): Starting recovery (logdev: internal)
Jan 21 07:38:14 SRV58302 kernel: XFS (md5): Metadata corruption
detected at _xfs_buf_ioapply+0x95/0x38a [xfs], xfs_allocbt block
0x15d514890
Jan 21 07:38:14 SRV58302 kernel: XFS (md5): Unmount and run xfs_repair
Jan 21 07:38:14 SRV58302 kernel: XFS (md5): xfs_do_force_shutdown(0x8)
called from line 1367 of file fs/xfs/xfs_buf.c.  Return address =
0xffffffffa03d1082
Jan 21 07:38:14 SRV58302 kernel: XFS (md5): Corruption of in-memory
data detected.  Shutting down filesystem
Jan 21 07:38:14 SRV58302 kernel: XFS (md5): Please umount the
filesystem and rectify the problem(s)
Jan 21 07:38:14 SRV58302 kernel: XFS (md5): log mount/recovery failed:
error -117
Jan 21 07:38:14 SRV58302 kernel: XFS (md5): log mount failed
Jan 21 07:38:14 SRV58302 root: mount: /mnt/disk5: mount(2) system call
failed: Structure needs cleaning.
Jan 21 07:38:14 SRV58302 emhttpd: shcmd (73): exit status: 32
Jan 21 07:38:14 SRV58302 emhttpd: /mnt/disk5 mount error: No file system
Jan 21 07:38:14 SRV58302 emhttpd: shcmd (74): umount /mnt/disk5
Jan 21 07:38:14 SRV58302 root: umount: /mnt/disk5: not mounted.
Jan 21 07:38:14 SRV58302 emhttpd: shcmd (74): exit status: 32
Jan 21 07:38:14 SRV58302 emhttpd: shcmd (75): rmdir /mnt/disk5

The drive is installed in a 24-bay Supermicro chassis/back-plane and
exposed through a LSI 2008 HBA on a Supermicro X10SRL-F with a Xeon E5
and ECC DDR4. The server is on a 240V 3000VA Eaton UPS with an EBM and
has dual 1.1KW PSUs. The server has also just passed 24 hrs of memory
testing with no memory/ECC issues logged. The drive in question is an
8TB WD Red 5400 RPM drive, and it has passed both quick and extended
SMART tests, with zero issues.

I am willing to try any and all commands to try to fix this. Before I
did anything, I made a dd clone of the suspect drive in case my
efforts with xfs_repair have already damaged it. From what I can see
there are no differences in the output of xfs_repair -n from before
and after running xfs_repair -L -v. I have another drive coming to
make a master clone, and will attempt xfs_repair outside unRAID.

Thank you for your assistance! I am happy to receive any and all guidance.
Phase 1 - find and verify superblock...
        - reporting progress in intervals of 15 minutes
        - block cache size set to 1479176 entries
Phase 2 - using internal log
...
Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - traversing filesystem ...
        - agno = 0
...
entry "#sanitized#" in directory inode 1093051943 points to non-existent inode 6448754488, marking entry to be junked
bad hash table for directory inode 1093051943 (no data entry): rebuilding
rebuilding directory inode 1093051943
Invalid inode number 0x0
xfs_dir_ino_validate: XFS_ERROR_REPORT

fatal error -- couldn't map inode 1124413091, err = 117
This is most likely the same issue reported here[1] where an inode read
verifier is running in a context that gets in the way of repair doing
its job. Please try running xfs_repair v4.10 against your fs. That is
the last release that does not include this change.

Brian

[1] https://marc.info/?l=linux-xfs&m=151625684323031&w=2
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help