xfs
[Top] [All Lists]

Re: XFS internal error xfs_da_do_buf(1) at line 1992 of file fs/xfs/xfs

To: Eric Sandeen <sandeen@xxxxxxxxxxx>
Subject: Re: XFS internal error xfs_da_do_buf(1) at line 1992 of file fs/xfs/xfs_da_btree.c
From: Amit Sahrawat <amit.sahrawat83@xxxxxxxxx>
Date: Thu, 22 Oct 2009 14:39:45 +0530
Cc: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=5dTGyJg25G8pp9LhEjohG6ODWaqibbsg8v6inYqV5UI=; b=RiCBd/vr4G0vixoShztJXhBmCAWuV1d+a3XrEN0bt8SRjZ1ghAYNUqYIZ4tAU3qvBM vuvZMh+ZOeI+C+qbtr8BLZdpLoqGyMQH7aB/GrFx6DLzc7waEh0bCb/SAPKBm/hu9kNM +qrerIRnnwTFqecJvIql41aIx4oR8RjL0PMFo=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=pXL4cHQ9HDqfqmHlLaEhGZKaj8gdG4L9barxKnG3Uz7ginc5ZOwsIX6zPqT8sfBitF 2I72wJBJX80QVmCHer60bx1bEcezsDqM7UVsq6fXns2xaKBSAA1mJ5BOs2jGGgHscdE+ JzOu2juQkGVleQfW4cdCPV8L23FBc5xqv6sK8=
In-reply-to: <4ADF4882.70106@xxxxxxxxxxx>
References: <c2dcdfa40910202307m77a9d7c5lf18e278a9ebae08e@xxxxxxxxxxxxxx> <4ADF2EE8.6010700@xxxxxxxxxxx> <c2dcdfa40910211032y5b1d2cd8l418491327d24b87b@xxxxxxxxxxxxxx> <4ADF4882.70106@xxxxxxxxxxx>
Hi Eric,

This seems related with the directory Inodes.

I tried the changes mentioned in the patch, they didn't work for me.
As mine seems to be ARM with EABI.

When files are created at the Root . It reports Root Inode :128 at the crash with bno:2

While suppose if another directory is created and Inode is 137
And then, rm -rf * in that directory
Crash would report error With this inode

xfs_da_do_buf: bno 8388631
dir: inode 137
Filesystem "sda4": XFS internal error xfs_da_do_buf(1) at line 1992 of file fs/x
fs/xfs_da_btree.c.  Caller 0xc0118eb8
ry
rm: unable [<c0022618>] (dump_stack+0x0/0x14) from [<c0125700>] (xfs_error_repor
t+0x54/0x64)
[<c01256ac>] (xfs_error_report+0x0/0x64) from [<c0118a74>] (xfs_da_do_buf+0x334/
0x6ec)
[<c0118740>] (xfs_da_do_buf+0x0/0x6ec) from [<c0118eb8>] (xfs_da_read_buf+0x34/0
x3c)
[<c0118e84>] (xfs_da_read_buf+0x0/0x3c) from [<c011b5c8>] (xfs_da_node_lookup_in
t+0x70/0x318)
[<c011b558>] (xfs_da_node_lookup_int+0x0/0x318) from [<c01219d4>] (xfs_dir2_node
_removename+0x48/0x500)
[<c012198c>] (xfs_dir2_node_removename+0x0/0x500) from [<c011c334>] (xfs_dir_rem
ovename+0x100/0x10c)
[<c011c234>] (xfs_dir_removename+0x0/0x10c) from [<c014cde4>] (xfs_remove+0x280/
0x424)
 r6 = 00000000  r5 = 00000000  r4 = 00003951
[<c014cb64>] (xfs_remove+0x0/0x424) from [<c0157044>] (xfs_vn_unlink+0x30/0x60)
[<c0157014>] (xfs_vn_unlink+0x0/0x60) from [<c009175c>] (vfs_unlink+0x70/0xac)
 r7 = C471C000  r6 = C43BF598  r5 = C395B3B8  r4 = 00000000
[<c00916ec>] (vfs_unlink+0x0/0xac) from [<c0093ac0>] (do_unlinkat+0xcc/0x14c)
 r6 = C3968AD8  r5 = C395B3B8  r4 = 00000000
[<c00939f4>] (do_unlinkat+0x0/0x14c) from [<c0093b58>] (sys_unlink+0x18/0x1c)
 r7 = 0000000A  r6 = 0000000C  r5 = 00000008  r4 = BEDCBC19
[<c0093b40>] (sys_unlink+0x0/0x1c) from [<c001de40>] (ret_fast_syscall+0x0/0x2c)
to remove `5826'xfs_da_do_buf: bno 8388631
dir: inode 137

Checking this through xfs_check will show:
]# xfs_check /dev/sdb4
dir 128 block 8388609 extra leaf entry d5830 402
dir 128 block 8388609 extra leaf entry d5831 404
dir 128 block 8388609 extra leaf entry d5832 406
dir 128 block 8388609 extra leaf entry d5833 408
dir 128 block 8388609 extra leaf entry d5834 40a
dir 128 block 8388609 extra leaf entry d5835 40c
dir 128 block 8388609 extra leaf entry d5836 40e
dir 128 block 8388609 extra leaf entry d5837 410
...
...
dir 128 block 8388609 extra leaf entry ddab2 5fa
dir 128 block 8388609 extra leaf entry ddab3 5fc
dir 128 block 8388609 extra leaf entry ddab4 5fe
bad free block ent 1 is 65535 should be 0 for dir ino 128 block 16777216
bad free block ent 2 is 0 should be 65535 for dir ino 128 block 16777216
dir ino 128 missing leaf entry for d5a37/260
dir ino 128 missing leaf entry for d5a38/262
dir ino 128 missing leaf entry for d5a39/264
...
...

I tried checking the inode before and after corruption using xfs_db and xfs_check
When I create files and check using xfs_check, no corruption is showed and also xfs_db shows correct results for the inode.
While after the crash is observed, xfs_check show the errors I mentioned above.
Also, the values for Inode using xfs_db differ from the ones I get after i do xfs_repair -L on the device.


Can u get anything from the above mentioned log.

Thanks & Regards,
Amit Sahrawat


On Wed, Oct 21, 2009 at 11:14 PM, Eric Sandeen <sandeen@xxxxxxxxxxx> wrote:
Amit Sahrawat wrote:
> Thanks Eric,
>
> Yes, I am able to get this for the same Inode and Block number.
>
> xfs_check reports error for dir inode 128 missing leaf entries..(exact
> string I m missing), will provide you the details.
>
> Using xfs_repair fixes the problem. But again the same operation leads
> to the crash.
> Even on a freshly formatted disk, I get this error.
>
> Please let me know from where I can get this patch to try whether it
> fixes for me or not.


http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=ae23a5e87dbbf4657a82e1ff8ebc52ab50361c14

-Eric


<Prev in Thread] Current Thread [Next in Thread>