----- Original Message -----
| Hi Bob,
| On 13/01/17 13:40, Bob Peterson wrote:
| > Hi,
| >
| > This patch changes the checks done on the rindex file. Before, if
| > the rindex addresses weren't perfectly aligned and equally spaced,
| > it considered the rindex not sane. However, in most cases it should
| > be sane. Rather than flag this as a violation, I use it to trigger
| > a read from disk to see if the rindex really DOES point to an rgrp
| > in these cases, and if not, THEN flag the rindex as not sane.
| > I also added some basic checks on the rindex values, such as
| > checking if the number of bitmaps is sane, and if most of the fields
| > have values we'd expect.
| >
| > Signed-off-by: Bob Peterson <rpete...@redhat.com>
| Thanks for working on this. Unfortunately it makes one of the nukerg
| tests fail:
| <snip>
| Nuking rindex entry 1.
| ./fsck.at:35: fsck.gfs2 -y $GFS_TGT
| stderr:
| (level 1 failed: Some damage was found; we need to take remedial measures)
| Block #-1 (0xffffffffffffffff) (-17 of 0) is not GFS2_METATYPE_RB.
| Attempting to repair the rgrp.
| bad read: Invalid argument from rewrite_rg_block:892: block
| 18446744073709551615 (0xffffffffffffffff) count: 1 size: 4096 ret: -1
| <snip>
| You can reproduce this with: make check TOPTS='-k fsck' and the log will
| be in tests/testsuite.dir/21/testsuite.log
| Or, manually, the test is:
| $ truncate -s 10G testvol
| $ gfs2/mkfs/mkfs.gfs2 -Oplock_nolock testvol
| $ tests/nukerg -i 1 testvol
| $ gfs2/fsck/fsck.gfs2 -y testvol
| $ gfs2/fsck/fsck.gfs2 -n testvol
| Andy

Hi Andy,

Hmmm...Thanks for checking this. Seems like it's already failing:

    [bob@vishnu ../bob/gfs2-utils/gfs2]$ brew latest-pkg rhel-7.4-candidate 
    Build                                     Tag                   Built by
    ----------------------------------------  --------------------  
    gfs2-utils-3.1.9-3.el7                    rhel-7.3              anprice
    [root@gfs-i24c-01 /home/bob/gfs2-utils]# rpm -q gfs2-utils
    [root@gfs-i24c-01 /home/bob/gfs2-utils]# ls -l `which fsck.gfs2`
    -rwxr-xr-x 1 root root 288528 Jul 20 09:59 /usr/sbin/fsck.gfs2
    [root@gfs-i24c-01 /home/bob/gfs2-utils]# mkfs.gfs2 -Oplock_nolock 
/dev/sasdrives/testvol |grep -i group
    Building resource groups: Done
    Resource groups:           41
    [root@gfs-i24c-01 /home/bob/gfs2-utils]# tests/nukerg -i 1 
    41 rindex entries found.
    Nuking rindex entry 1.
    [root@gfs-i24c-01 /home/bob/gfs2-utils]# fsck.gfs2 -y /dev/sasdrives/testvol
    Initializing fsck
    Validating resource group index.
    Level 1 resource group check: Checking if all rgrp and rindex values are 
    (level 1 failed: Some damage was found; we need to take remedial measures)
    Level 2 resource group check: Checking if rindex values may be easily 
    The rindex file does not meet our expectations.
    (level 2 failed at block 0 (0x0): rindex is unevenly spaced: either 
gfs1-style or corrupt)
    Level 3 resource group check: Calculating where the rgrps should be if 
evenly spaced.
    New resource groups:
    L3: number of rgs in the index = 41.
    L3: number of rgs expected     = 41.
    Level 3 didn't work.  Too many discrepancies.
    41 out of 41 rgrps (100 percent) did not match what was expected.
    (level 3 failed at block 0 (0x0): rindex calculations don't match: uneven 
rgrp boundaries)
    Level 4 resource group check: Trying to rebuild rindex assuming evenly 
spaced rgrps.
    Maximum number of rgrp grow segments reached.
    This file system cannot be repaired with fsck.
    *** stack smashing detected ***: fsck.gfs2 terminated
    Segmentation fault
    [root@gfs-i24c-01 /home/bob/gfs2-utils]#

I'll see if I can debug it, time permitting.


Bob Peterson
Red Hat File Systems

Reply via email to