xfs
[Top] [All Lists]

BUG 800293 - repair can corrupt directories

To: nathans@xxxxxxxxxxxx
Subject: BUG 800293 - repair can corrupt directories
From: pv@xxxxxxxxxxxxx (nathans@xxxxxxxxxxxx)
Date: Sun, 27 Aug 2000 15:37:57 -0700 (PDT)
Cc: linux-xfs@xxxxxxxxxxx
Reply-to: sgi.bugs.xfs@xxxxxxxxxxxxxxxxx
Sender: owner-linux-xfs@xxxxxxxxxxx
Webexec: webpvsubmit,PvProjectIncident
Webpv: wobbly.melbourne.sgi.com
View Incident: 
http://co-op.engr.sgi.com/BugWorks/code/bwxquery.cgi?search=Search&wlong=1&view_type=Bug&wi=800293

Submitter : nathans                   Submitter Domain : engr               
Assigned Engineer : nathans           Assigned Domain : engr                
Assigned Group : xfs-linux            Category : software                   
Customer Reported : F                 Priority : 2                          
Project : xfs-linux                   Status : open                         
Description :
Test 031 reproduces this one - it runs mkfs and then repairs
numerous different combinations of directory version and
directory size ... repair seems to get itself into trouble
without even mounting these filesystems (created using mkfs
prototype files).

To exercise this bug (use the sim mkfs/repair binaries, cos
we seem to trip an assert in libxfs-mkfs before completing):
$ cd cmd/xfs/sim
$ make
# make install

then running "./check 031" produces output along the lines...

QA output created by 031
=== version 1, one entry
[ snip, output looks fine ]
=== version 2, one entry (shortform)
[ snip, output looks fine ]
=== version 1, twenty entries
[ snip, output looks fine ]
=== version 2, twenty entries (block form)
Repairing, iteration 1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
Phase 6 - check inode connectivity...
rebuilding directory inode 128
Phase 7 - verify and correct link counts...
done
[ this repeats for each repair iteration ]
=== version 1, thousand entries
Repairing, iteration 1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
# of bmap records in inode 128 greater than max (4096, max - 254)
bmap of block #0 of inode 128 failed
fatal error -- couldn't map first leaf block of directory inode 128
[ this repeats for each repair iteration ]
=== version 2, thousand entries (leaf form)
Repairing, iteration 1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
# of bmap records in inode 128 greater than max (4096, max - 254)
Phase 5 - rebuild AG headers and trees...
Phase 6 - check inode connectivity...
Phase 7 - verify and correct link counts...
done
[ this repeats for each repair iteration ]

<Prev in Thread] Current Thread [Next in Thread>
  • BUG 800293 - repair can corrupt directories, nathans@xxxxxxxxxxxx <=