Red Hat Bugzilla – Bug 1458670
xfs_db does not take sector size into account when setting type
Last modified: 2018-04-10 11:08:51 EDT
Description of problem: I've hit a problem with xfs_db on filesystems with a 4096 byte sector size. Normally when investigating an on disk error I can set a disk address then change the type to the metadata based on the magic number or error seen. But for non 512 byte sector sizes I'm getting CRC errors. This leads to confusing when analysing such filesystems. Version-Release number of selected component (if applicable): - xfsprogs-4.5.0-9.el7_3.x86_64 - upstream xfs-dev How reproducible: Always Steps to Reproduce: $ truncate -s1G xfs_sectsize_4096.image $ mkfs.xfs -s size=4096 xfs_sectsize_4096.image meta-data=xfs_sectsize_4096.image isize=512 agcount=4, agsize=65536 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 $ xfs_db xfs_sectsize_4096.image xfs_db> agi 0 xfs_db> p crc crc = 0xab85043e (correct) xfs_db> daddr current daddr is 16 xfs_db> daddr 42 xfs_db> daddr 16 xfs_db> type agi Metadata CRC error detected at xfs_agi block 0x10/0x200 xfs_db> p crc crc = 0xab85043e (bad) Compare this with the behaviour for 512 byte sectors $ truncate -s1G xfs_sectsize_512.image $ mkfs.xfs xfs_sectsize_512.image meta-data=xfs_sectsize_512.image isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 $ xfs_db xfs_sectsize_512.image xfs_db> agi 0 xfs_db> daddr current daddr is 2 xfs_db> daddr 42 xfs_db> daddr 2 xfs_db> type agi xfs_db> p crc crc = 0xd8661783 (correct)
Bills said he'd take a look at this one. Bill, please let me know how it goes. Thanks, -Eric
As noted, this needs to be fixed upstream first.
upsteam commit: 55f224baf83
Due to Bill has written a case for xfstests and merged as xfs/424, so this bug has been covered now. Thanks Bill:)
Do we close this or move it to some other state, as it's been fixed in xfsprogs, ala commit 55f224baf ? Thanks- Bill
(In reply to Bill O'Donnell from comment #6) > Do we close this or move it to some other state, as it's been fixed in > xfsprogs, ala commit 55f224baf ? Hi Bill, Sorry I can't understand your point. I knew you've fixed it on upstream xfsprogs, but I didn't see any update in RHEL-7 xfsprogs, so I can't close this bug directly. Eric is maintainer of internal xfsprogs, so generally he'll merge your patch into internal xfsprogs from upstream, then he will change this bug status to POST->MODIFIED. I don't know if you can change internal xfsprogs, or you need to talk with Eric. Thanks, Zorro > > Thanks- > Bill
I'll merge this into xfsprogs along with other fixes for 7.5. Thanks, -Eric
These more or less go together to fix this: 533d1d2 xfs_db: properly set inode type db23e0f xfs_db: improve argument naming in set_cur and set_iocur_type 55f224b xfs_db: update buffer size when new type is set
*** Bug 1512856 has been marked as a duplicate of this bug. ***
------- Comment From hasriram@in.ibm.com 2017-12-08 04:51 EDT------- Test passed with kernel 4.14.0-6.el7a.ppc64le. # ./check tests/xfs/424 FSTYP -- xfs (non-debug) PLATFORM -- Linux/ppc64le ltc-boston27 4.14.0-6.el7a.ppc64le MKFS_OPTIONS -- -f -bsize=4096 /dev/loop2 MOUNT_OPTIONS -- -o context=system_u:object_r:root_t:s0 /dev/loop2 /home/scratch xfs/424 9s Ran: xfs/424 Passed all 1 tests Harish
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2018:0847