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.
|