xfs
[Top] [All Lists]

Bug-Report xfs_inode.c

To: linux-xfs@xxxxxxxxxxx
Subject: Bug-Report xfs_inode.c
From: "Andreas G. Filzer" <filzer@xxxxxx>
Date: Thu, 13 Apr 2006 00:59:47 +0200
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: KMail/1.9.1
Hello,

my english is not very well, but I get a nice Bug Message and so I send you 
this info. It's Ok ;-)
Maybe you need some Infos more, but I don't find on your Website tips for me 
how you want to have a bug-report.

Best regards 
Andreas Filzer


Some Infos:
1. My Box is gentoo-linux - current status
2. Versions sys-fs/xfsprogs-2.7.11; 2.7.3; 2.6.36
3. vanilla-kernel-2.6.16.1
4. gcc-3.4.6; Pentium 4
5. I've a corrupt file on the fs
hugo.html  
Date 11.11.1935 
Size 12 568 817,4 TB
6. HD WDC WD1200BB-00CAA1
7. Filesystem           1K-blocks      Used Available Use% Mounted on
   /dev/hdb1             48804640  20241268  28563372  42%

##########################################################
### shell 
### command: xfs_repair /dev/hdb1
##########################################################
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
zero_log: head block 2 tail block 2
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
correcting nblocks for inode 103503311, was 0 - counted 1
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
        - agno = 12
        - agno = 13
        - agno = 14
        - agno = 15
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - clear lost+found (if it exists) ...
        - clearing existing "lost+found" inode
        - marking entry "lost+found" to be deleted
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
data fork in regular inode 103503311 claims used block 8102976
correcting nblocks for inode 103503311, was 1 - counted 0
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
        - agno = 12
        - agno = 13
        - agno = 14
        - agno = 15
Phase 5 - rebuild AG headers and trees...
        - reset superblock...
Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - ensuring existence of lost+found directory
        - traversing filesystem starting at / ...
rebuilding directory inode 128
        - traversal finished ...
        - traversing all unattached subtrees ...
        - traversals finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
corrupt dinode 103503311, extent total = 1, nblocks = 0.  This is a bug.
Please report it to linux-xfs@xxxxxxxxxxxx

###########################################################
# dmesg
###########################################################
[17190227.836000] Filesystem "hdb1": corrupt dinode 103503311, extent total = 
1, nblocks = 0.  Unmount and run xfs_repair.
[17190227.836000] 0x0: 49 4e 81 ff 01 02 00 01 00 00 00 00 00 00 00 00
[17190227.836000] Filesystem "hdb1": XFS internal error xfs_iformat(1) at line 
415 of file fs/xfs/xfs_inode.c.  Caller 0xc02b4d40
[17190227.836000]  [<c02b39d8>] xfs_iformat+0x17b/0x64a
[17190227.836000]  [<c02b4d40>] xfs_iread+0x1ad/0x200
[17190227.836000]  [<c02b4d40>] xfs_iread+0x1ad/0x200
[17190227.836000]  [<c02b4d40>] xfs_iread+0x1ad/0x200
[17190227.836000]  [<c02b2597>] xfs_iget_core+0xa7/0x503
[17190227.836000]  [<c0176288>] iget_locked+0x7a/0x7c
[17190227.836000]  [<c02b2ac4>] xfs_iget+0xd1/0x137
[17190227.836000]  [<c02ce296>] xfs_dir_lookup_int+0xbc/0x144
[17190227.836000]  [<c02d4631>] xfs_lookup+0x5d/0x92
[17190227.836000]  [<c02e1641>] linvfs_lookup+0x52/0x99
[17190227.836000]  [<c0169b86>] real_lookup+0xc3/0xf2
[17190227.836000]  [<c0169e54>] do_lookup+0x9d/0xa8
[17190227.836000]  [<c016a5d7>] __link_path_walk+0x778/0xcf3
[17190227.836000]  [<c01781c7>] mntput_no_expire+0x22/0x85
[17190227.836000]  [<c016aba9>] link_path_walk+0x57/0xeb
[17190227.836000]  [<c0304d8d>] strncpy_from_user+0x3c/0x68
[17190227.836000]  [<c016aed2>] do_path_lookup+0xf3/0x250
[17190227.836000]  [<c016b31f>] __user_walk_fd+0x3c/0x5c
[17190227.836000]  [<c0165a21>] vfs_lstat_fd+0x21/0x69
[17190227.836000]  [<c0165a88>] vfs_lstat+0x1f/0x23
[17190227.836000]  [<c0166143>] sys_lstat64+0x18/0x36
[17190227.836000]  [<c0102e11>] syscall_call+0x7/0xb
##############################################################

xfs_logprint:
    data device: 0x341
    log device: 0x341 daddr: 48828512 length: 47680

cycle: 1        version: 1              lsn: 1,0        tail_lsn: 1,0
length of Log Record: 20        prev offset: -1         num ops: 1
uuid: f14d3060-17fc-4338-8612-4c742522eb91   format: little endian linux
h_size: 32768
----------------------------------------------------------------------------
Oper (0): tid: b0c0d0d0  len: 8  clientid: LOG  flags: UNMOUNT
Unmount filesystem

============================================================================
xfs_logprint: skipped 47678 zeroed blocks in range: 2 - 47679
xfs_logprint: physical end of log
============================================================================
xfs_logprint: logical end of log
============================================================================
#####################################################################

/usr/bin/xfs_db -r -c 'inode 103503311'  -c print /dev/hdb1
core.magic = 0x494e
core.mode = 0100777
core.version = 1
core.format = 2 (extents)
core.nlinkv1 = 1
core.uid = 0
core.gid = 0
core.flushiter = 3
core.atime.sec = Mon Nov 22 01:30:00 2004
core.atime.nsec = 000000000
core.mtime.sec = Tue Nov  5 07:25:12 2002
core.mtime.nsec = 000000000
core.ctime.sec = Mon Nov 22 01:53:12 2004
core.ctime.nsec = 683756664
core.size = 2812
core.nblocks = 0
core.extsize = 0
core.nextents = 1
core.naextents = 0
core.forkoff = 0
core.aformat = 2 (extents)
core.dmevmask = 0
core.dmstate = 0
core.newrtbm = 0
core.prealloc = 0
core.realtime = 0
core.immutable = 0
core.append = 0
core.sync = 0
core.noatime = 0
core.nodump = 0
core.rtinherit = 0
core.projinherit = 0
core.nosymlinks = 0
core.extsz = 0
core.extszinherit = 0
core.gen = 0
next_unlinked = null
u.bmx[0] = [startoff,startblock,blockcount,extentflag] 0:[0,8102976,1,0]
############################################################
xfs_check /dev/hdb1
bad nblocks 0 for inode 103503311, counted 1
block 9/762944 type unknown not expected
############################################################


<Prev in Thread] Current Thread [Next in Thread>
  • Bug-Report xfs_inode.c, Andreas G. Filzer <=