xfs
[Top] [All Lists]

[Bug 389] Untarring an archive corrupts XFS file system

To: xfs-master@xxxxxxxxxxx
Subject: [Bug 389] Untarring an archive corrupts XFS file system
From: bugzilla-daemon@xxxxxxxxxxx
Date: Thu, 25 Nov 2004 15:04:37 -0800
Sender: linux-xfs-bounce@xxxxxxxxxxx
http://oss.sgi.com/bugzilla/show_bug.cgi?id=389





------- Additional Comments From james-p@xxxxxxxxxxxxxxxxxx  2004-25-11 08:15 
PDT -------
Created an attachment (id=148)
 --> (http://oss.sgi.com/bugzilla/attachment.cgi?id=148&action=view)
List of filename that corrupt file system

Just realized that I can reproduce the problem by just touching empty files -
so the following works without need for the tar archive:

cd /some/tmp/xfs/file/system
mkdir shd
for i in `cat corrupt.list`; do touch $i; done

------- Additional Comments From nathans@xxxxxxx  2004-25-11 15:04 PDT -------
Hi James,

Wow, a reproducible test case!  I'm not having any luck reproducing
it though - I'm following your second (touch) recipe but not seeing
the problem yet.  I also tried touching all but the last file in the
list, then umount/mount, and then touch the last file (which kind of
matches your earlier description I think) but that didn't cause any
problem either.

Could you try my recipe below and see if it fails for you?  If not,
is there a modified set of steps I can take to reproduce it?

thanks!


bruce /home/fsgqa# mkfs.xfs -f /dev/sdb7
meta-data=/dev/sdb7              isize=256    agcount=8, agsize=8031 blks
         =                       sectsz=512  
data     =                       bsize=4096   blocks=64248, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096  
log      =internal log           bsize=4096   blocks=1200, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0
bruce /home/fsgqa# mount /dev/sdb7 /scratch/xfs1
bruce /home/fsgqa# cd !$
cd /scratch/xfs1
bruce /scratch/xfs1# mkdir shd
bruce /scratch/xfs1# sh
sh-2.05b# for i in `cat /tmp/corrupt.list`; do touch $i; done
sh-2.05b# exit
bruce /scratch/xfs1# cd
bruce /root# umount /scratch/xfs1 
bruce /root# ls /scratch/xfs
bruce /root# umount /scratch/xfs1 
bruce /root# xfs_repair /dev/sdb7
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - 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
        - agno = 7
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - clear lost+found (if it exists) ...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
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 / ... 
        - traversal finished ... 
        - traversing all unattached subtrees ... 
        - traversals finished ... 
        - moving disconnected inodes to lost+found ... 
Phase 7 - verify and correct link counts...
done
bruce /root# 




------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


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