Bug 690186

Summary: gfs_jadd then gfs2_convert results in bad rgrps
Product: Red Hat Enterprise Linux 6 Reporter: Nate Straz <nstraz>
Component: clusterAssignee: Abhijith Das <adas>
Status: CLOSED NOTABUG QA Contact: Cluster QE <mspqa-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.1CC: ccaulfie, cluster-maint, lhh, rpeterso, teigland
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-03-23 19:35:00 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Nate Straz 2011-03-23 14:32:44 UTC
Description of problem:

SCENARIO - [add_journals]
Creating 1G LV jadd
Add journals to a file system then convert
Creating file system on /dev/wic/jadd with options '-p lock_nolock -j 1'
Device:                    /dev/wic/jadd
Blocksize:                 4096
Filesystem Size:           229332
Journals:                  1
Resource Groups:           8
Locking Protocol:          lock_nolock
Lock Table:                

Syncing...
All Done
Mounting gfs /dev/wic/jadd on west-01 with opts ''
Extending LV jadd by +1G
Adding 2 128 MB journals to /dev/wic/jadd
Unmounting /mnt/wic on west-01
Starting fsck of /dev/wic/jadd on west-01
fsck output in /tmp/will-it-convert.18538/1.add_journals/1.fsck-west-01-gfs.log
Starting gfs2_convert of /dev/wic/jadd on west-02
gfs2_convert output in /tmp/will-it-convert.18538/1.add_journals/2.convert-west-02.log
Starting fsck of /dev/wic/jadd on west-02
fsck output in /tmp/will-it-convert.18538/1.add_journals/3.fsck-west-02-gfs2.log
fsck.gfs2 returned 8
[nstraz@nsew sts-root]$ cat /tmp/will-it-convert.18538/1.add_journals/1.fsck-west-01-gfs.log
fsck 1.39 (29-May-2006)
Initializing fsck
Clearing journals (this may take a while)..
Journals cleared.
Starting pass1
Pass1 complete      
Starting pass1b
Pass1b complete      
Starting pass1c
Pass1c complete      
Starting pass2
Pass2 complete      
Starting pass3
Pass3 complete      
Starting pass4
Pass4 complete      
Starting pass5
Pass5 complete      
Writing changes to disk
[nstraz@nsew sts-root]$ cat /tmp/will-it-convert.18538/1.add_journals/2.convert-west-02.log
gfs2_convert version 3.0.12 (built Mar 22 2011 05:33:26)
Copyright (C) Red Hat, Inc.  2004-2010  All rights reserved.

Examining file system
This program will convert a gfs1 filesystem to a gfs2 filesystem.
WARNING: This can't be undone.  It is strongly advised that you:

   1. Back up your entire filesystem first.
   2. Run gfs_fsck first to ensure filesystem integrity.
   3. Make sure the filesystem is NOT mounted from any node.
   4. Make sure you have the latest software versions.
Converting resource groups.
Converting inodes.
4 inodes from 8 rgs converted.
Fixing file and directory information.
0 cdpn symlinks moved to empty directories.
Converting journals.
Converting journal space to rg space.
Addr 0x1c000 comes after rg at addr 0x15005
Addr 0x48000 comes after rg at addr 0x39000
Addr 0x40000 comes after rg at addr 0x39000
Writing journal #1...done.
Writing journal #2...done.
Writing journal #3...done.
Building GFS2 file system structures.
Removing obsolete GFS1 file system structures.
Committing changes to disk.
/dev/wic/jadd: filesystem converted successfully to gfs2.
[nstraz@nsew sts-root]$ cat /tmp/will-it-convert.18538/1.add_journals/3.fsck-west-02-gfs2.log
fsck from util-linux-ng 2.17.2
Initializing fsck
Validating Resource Group index.
Level 1 rgrp check: Checking if all rgrp and rindex values are good.
(level 1 failed: Some damage was found; we need to take remedial measures)
Level 2 rgrp check: Checking if rindex values are ascending and evenly spaced.
The rindex file does not meet our expectations.
(level 2 failed: rindex is unevenly spaced: converted from gfs1 or corrupt)
Level 3 rgrp check: Calculating where the rgrps should be if evenly spaced.
L3: number of rgs in the index = 11.
L3: number of rgs expected     = 64.
L3: They don't match; either (1) the fs was extended, (2) an odd
(level 3 failed: rindex calculations don't match: uneven rgrp boundaries)
L3: rgrp size was used, or (3) we have a corrupt rg index.
Level 4 rgrp check: Trying to rebuild rindex assuming evenly spaced rgrps.
* rgrp 6 at block 0x22ffb *** DAMAGED *** [length 0x6ffb]
* rgrp 7 at block 0x29ff6 *** DAMAGED *** [length 0x6ffb]
* rgrp 8 at block 0x30ff1 *** DAMAGED *** [length 0x6ffb]
* rgrp 9 at block 0x37fec *** DAMAGED ***(level 4 failed: Too many rgrp misses: rgrps must be unevenly spaced)
L4: number of rgs expected     = 9.
Level 4 didn't work.  Too many discrepancies.
8 out of 12 rgrps (66 percent) did not match what was expected.
Level 5 rgrp check: Trying to rebuild rindex assuming unevenly spaced rgrps.
* rgrp 3 at block 0xe008 *** DAMAGED *** [length 0x60fd]
* rgrp 4 at block 0x14105 *** DAMAGED *** [length 0x6ffb]
* rgrp 5 at block 0x1b100 *** DAMAGED *** [length 0x7fd9]
* rgrp 6 at block 0x230d9 *** DAMAGED *** [length 0x7027]
Error: too many missing or damaged rgrps using this method. Time to try another method.
Error rebuilding rgrp list.
(level 5 failed: Too much damage found: we cannot rebuild this rindex)
Resource Group recovery impossible; I can't fix this file system.


Version-Release number of selected component (if applicable):
gfs2-utils-3.0.12-41.el6.x86_64


How reproducible:
Every time

Steps to Reproduce:
1. gfs_jadd
2. gfs2_convert
3. fsck.gfs2
  
Actual results:
See above

Expected results:
file system should fsck cleanly after conversion

Additional info:
Works fine on RHEL 5.6 w/ gfs2-utils-0.1.62-28.el5

Comment 2 Nate Straz 2011-03-23 19:35:00 UTC
Test bug, I need to reactivate the LV on the second node after the LV is extended.