Bug 656371 - GFS2: gfs2_edit enhancements for RHEL5.7
Summary: GFS2: gfs2_edit enhancements for RHEL5.7
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: gfs2-utils
Version: 5.6
Hardware: All
OS: Linux
high
high
Target Milestone: rc
: ---
Assignee: Robert Peterson
QA Contact: Cluster QE
URL:
Whiteboard:
Depends On: 634623
Blocks: 674843
TreeView+ depends on / blocked
 
Reported: 2010-11-23 15:55 UTC by Robert Peterson
Modified: 2011-07-21 11:02 UTC (History)
12 users (show)

Fixed In Version: gfs2-utils-0.1.62-29.el5
Doc Type: Bug Fix
Doc Text:
Cause The gfs2_edit was not as effective as it could be for gathering GFS2 file system information. For example, the <page down> key was not working properly when displaying the rindex file. Consequence As a result, the users had to do much more effort to gather the same information. For example, only the first page of rindex was displayed, but the -p (print) option could still print the entire rindex file. So the user was forced to use -p to see the full contents of the rindex file. Fix We enhanced the tool so that more/better information is gathered. For example, now <page down> works properly. Result As a result, it is easier to debug GFS2 file system problems with gfs2_edit.
Clone Of: 634623
: 674843 (view as bug list)
Environment:
Last Closed: 2011-07-21 11:02:24 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
patch 1 (8.46 KB, patch)
2010-12-13 20:27 UTC, Robert Peterson
no flags Details | Diff
patch 2 (2.77 KB, patch)
2010-12-13 20:28 UTC, Robert Peterson
no flags Details | Diff
patch 3 (1.44 KB, patch)
2010-12-13 20:28 UTC, Robert Peterson
no flags Details | Diff
patch 4 (3.08 KB, patch)
2010-12-13 20:29 UTC, Robert Peterson
no flags Details | Diff
patch 5 (8.74 KB, patch)
2010-12-13 20:29 UTC, Robert Peterson
no flags Details | Diff
patch 6 (1.85 KB, patch)
2010-12-13 20:30 UTC, Robert Peterson
no flags Details | Diff
patch 7 (51.78 KB, patch)
2010-12-13 20:30 UTC, Robert Peterson
no flags Details | Diff
patch 8 (4.65 KB, patch)
2010-12-13 20:31 UTC, Robert Peterson
no flags Details | Diff
patch 9 (13.82 KB, patch)
2010-12-13 20:31 UTC, Robert Peterson
no flags Details | Diff
patch 10 (17.84 KB, patch)
2010-12-13 20:31 UTC, Robert Peterson
no flags Details | Diff
patch 11 (18.16 KB, patch)
2010-12-13 20:32 UTC, Robert Peterson
no flags Details | Diff
patch 12 (1.88 KB, patch)
2011-02-02 21:11 UTC, Robert Peterson
no flags Details | Diff
patch 13 (1.11 KB, patch)
2011-02-02 21:12 UTC, Robert Peterson
no flags Details | Diff
patch 14 (1.00 KB, patch)
2011-02-02 21:13 UTC, Robert Peterson
no flags Details | Diff
patch 15 (2.82 KB, patch)
2011-02-02 21:13 UTC, Robert Peterson
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2011:1042 0 normal SHIPPED_LIVE gfs2-utils bug fix and enhancement update 2011-07-20 15:43:47 UTC

Comment 1 Robert Peterson 2010-12-13 20:27:49 UTC
Created attachment 468473 [details]
patch 1

Comment 2 Robert Peterson 2010-12-13 20:28:29 UTC
Created attachment 468474 [details]
patch 2

Comment 3 Robert Peterson 2010-12-13 20:28:58 UTC
Created attachment 468475 [details]
patch 3

Comment 4 Robert Peterson 2010-12-13 20:29:24 UTC
Created attachment 468476 [details]
patch 4

Comment 5 Robert Peterson 2010-12-13 20:29:49 UTC
Created attachment 468477 [details]
patch 5

Comment 6 Robert Peterson 2010-12-13 20:30:13 UTC
Created attachment 468478 [details]
patch 6

Comment 7 Robert Peterson 2010-12-13 20:30:37 UTC
Created attachment 468479 [details]
patch 7

Comment 8 Robert Peterson 2010-12-13 20:31:03 UTC
Created attachment 468480 [details]
patch 8

Comment 9 Robert Peterson 2010-12-13 20:31:26 UTC
Created attachment 468481 [details]
patch 9

Comment 10 Robert Peterson 2010-12-13 20:31:55 UTC
Created attachment 468482 [details]
patch 10

Comment 11 Robert Peterson 2010-12-13 20:32:25 UTC
Created attachment 468483 [details]
patch 11

Comment 12 Robert Peterson 2011-02-02 21:11:58 UTC
Created attachment 476657 [details]
patch 12

Comment 13 Robert Peterson 2011-02-02 21:12:49 UTC
Created attachment 476658 [details]
patch 13

Comment 14 Robert Peterson 2011-02-02 21:13:18 UTC
Created attachment 476659 [details]
patch 14

Comment 15 Robert Peterson 2011-02-02 21:13:43 UTC
Created attachment 476660 [details]
patch 15

Comment 16 Robert Peterson 2011-02-02 21:20:06 UTC
These 15 patches were pushed to the RHEL57 branch of the
cluster.git tree for inclusion into 5.7.  Most of them are
upstream already, but I still need to do a few.  Changing
status to POST until we get a build.  They were tested on
gfs-i16c-01.mpc.lab.eng.bos.redhat.com.

Comment 17 Robert Peterson 2011-02-03 15:09:07 UTC
Taking this out of POST because I forgot about this patch which
also needs to be ported back to 5.7:
http://git.fedorahosted.org/git/?p=gfs2-utils.git;a=commitdiff;h=97368b361627c1a89f7e241297541118018504c9

Comment 18 Robert Peterson 2011-02-03 15:58:54 UTC
The crosswrite patch referenced in comment #17 was pushed to
the RHEL57 branch of the cluster.git tree for inclusion into
RHEL5.7.  It was tested on system gfs-i16c-01.
Changing status back to POST.

Comment 19 Robert Peterson 2011-02-05 19:21:33 UTC
I built this into gfs2-utils-0.1.62-29.el5.  Changing status
to Modified.

Comment 22 Florian Nadge 2011-05-24 14:13:53 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
This field is the basis of the errata or release note for this bug. It can also be used for change logs.

The Technical Note template, known as CCFR, is as follows:

Cause
    What actions or circumstances cause this bug to present.
Consequence
    What happens when the bug presents.
Fix
    What was done to fix the bug.
Result
    What now happens when the actions or circumstances above occur.
    Note: this is not the same as the bug doesn’t present anymore.

Comment 23 Robert Peterson 2011-05-24 16:15:44 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1,13 +1,11 @@
-This field is the basis of the errata or release note for this bug. It can also be used for change logs.
-
-The Technical Note template, known as CCFR, is as follows:
-
 Cause
-    What actions or circumstances cause this bug to present.
+The gfs2_edit was not as effective as it could be for gathering GFS2 file system information.  For example, the <page down> key was not working properly when displaying the rindex file.
+
 Consequence
-    What happens when the bug presents.
+As a result, the users had to do much more effort to gather the same information.  For example, only the first page of rindex was displayed, but the -p (print) option could still print the entire rindex file.  So the user was forced to use -p to see the full contents of the rindex file.
+
 Fix
-    What was done to fix the bug.
+We enhanced the tool so that more/better information is gathered.  For example, now <page down> works properly.
+
 Result
-    What now happens when the actions or circumstances above occur.
+As a result, it is easier to debug GFS2 file system problems with gfs2_edit.-    Note: this is not the same as the bug doesn’t present anymore.

Comment 24 Robert Peterson 2011-05-25 19:53:03 UTC
Since this is a grab-bag of mostly engineering tools, I agreed
with QE to test the old versus new gfs2_edit and post the
results to the bugzilla as proof that the new code works properly.

There are 15 or so patches, so to keep all the tests straight,
I'll post a comment for each one with its test results showing
the old version and the new version.  I'll do this using QE test
system west-02, and one of my nodes, called intec1, which is
running the older gfs2_edit, from gfs2-utils-0.1.62-28.el5.

Comment 25 Robert Peterson 2011-05-25 20:02:12 UTC
Results from testing patch #1:
"Better printing of directory leaf information"

Old code system:

[root@intec1 ~]# mount -tgfs2 /dev/dcs/data01 /mnt/gfs2
[root@intec1 ~]# mkdir /mnt/gfs2/bigdir
[root@intec1 ~]# for i in `seq 1 100000` ; do echo $i > /mnt/gfs2/bigdir/fairly_long_file_name_$i ; done
[root@intec1 ~]# umount /mnt/gfs2
[root@intec1 ~]# gfs2_edit -p root /dev/dcs/data01 | tail -5
This directory block contains 3 directory entries.
     1. (1). 22 (0x16): Dir     .
     2. (2). 22 (0x16): Dir     ..
     3. (3). 33133 (0x816d): Dir     bigdir
------------------------------------------------------
[root@intec1 ~]# gfs2_edit -p 0x816d /dev/dcs/data01 > /tmp/gronk
[root@intec1 ~]# head -100 /tmp/gronk
Block #33133    (0x816d) of 26214400 (0x1900000) (disk inode)

Dinode:
  mh_magic              0x01161970(hex)
  mh_type               4                   0x4
  mh_format             400                 0x190
  no_formal_ino         13                  0xd
  no_addr               33133               0x816d
  di_mode               040755(decimal)
  di_uid                0                   0x0
  di_gid                0                   0x0
  di_nlink              2                   0x2
  di_size               32768               0x8000
  di_blocks             2260                0x8d4
  di_atime              1306352744          0x4ddd5c68
  di_mtime              1306352768          0x4ddd5c80
  di_ctime              1306352768          0x4ddd5c80
  di_major              0                   0x0
  di_minor              0                   0x0
  di_goal_meta          234530              0x39422
  di_goal_data          234530              0x39422
  di_flags              0x00000003(hex)
  di_payload_format     0                   0x0
  di_height             1                   0x1
  di_depth              12                  0xc
  di_entries            100002              0x186a2
  di_eattr              33134               0x816e
This directory contains 9 indirect blocks
Indirect blocks:
0 => 0xe267 / 57959
This directory block contains 1 directory entries.Unknown 

1 => 0xe268 / 57960
This directory block contains 1 directory entries.Unknown 

2 => 0x12ab5 / 76469
This directory block contains 1 directory entries.Unknown 

3 => 0x1e0fc / 123132
This directory block contains 1 directory entries.Unknown 

4 => 0x1e0fd / 123133
This directory block contains 1 directory entries.Unknown 

5 => 0x34bfb / 216059
This directory block contains 1 directory entries.Unknown 

6 => 0x34bfa / 216058
This directory block contains 1 directory entries.Unknown 

7 => 0x34bf8 / 216056
This directory block contains 1 directory entries.Unknown 

8 => 0x34bf9 / 216057
This directory block contains 1 directory entries.Unknown 


------------------------------------------------------

New code QE system:
[root@west-02 ~]# mount -tgfs2 /dev/west123/bob /mnt/gfs2
[root@west-02 ~]# mkdir /mnt/gfs2/bigdir
[root@west-02 ~]# for i in `seq 1 100000` ; do echo $i > /mnt/gfs2/bigdir/fairly_long_file_name_$i ; done
[root@west-02 ~]# umount /mnt/gfs2
[root@west-02 ~]# gfs2_edit -p root /dev/west123/bob | tail -5
This directory block contains 3 directory entries.
     1. (1). 22 (0x16): Dir     .
     2. (2). 22 (0x16): Dir     ..
     3. (3). 33133 (0x816d): Dir     bigdir
------------------------------------------------------
[root@west-02 ~]# gfs2_edit -p 0x816d /dev/west123/bob > /tmp/gronk
[root@west-02 ~]# head -100 /tmp/gronk
Block #33133    (0x816d) of 26214400 (0x1900000) (disk inode)

Dinode:
  mh_magic              0x01161970(hex)
  mh_type               4                   0x4
  mh_format             400                 0x190
  no_formal_ino         13                  0xd
  no_addr               33133               0x816d
  di_mode               040755(decimal)
  di_uid                0                   0x0
  di_gid                0                   0x0
  di_nlink              2                   0x2
  di_size               32768               0x8000
  di_blocks             2260                0x8d4
  di_atime              1306351994          0x4ddd597a
  di_mtime              1306352127          0x4ddd59ff
  di_ctime              1306352127          0x4ddd59ff
  di_major              0                   0x0
  di_minor              0                   0x0
  di_goal_meta          234530              0x39422
  di_goal_data          234530              0x39422
  di_flags              0x00000003(hex)
  di_payload_format     0                   0x0
  di_height             1                   0x1
  di_depth              12                  0xc
  di_entries            100002              0x186a2
  di_eattr              33134               0x816e
This directory contains 9 indirect blocks
Indirect blocks:
0 => 0xe267 / 57959
   0 => 0x27e5b / 163419
Directory block: lf_depth:11, lf_entries:43,fmt:1200 next=0x0 (43 dirents).
     1. (1). 34461 (0x869d): File    fairly_long_file_name_656
     2. (2). 39562 (0x9a8a): File    fairly_long_file_name_3171
     3. (3). 52317 (0xcc5d): File    fairly_long_file_name_9464
     4. (4). 61863 (0xf1a7): File    fairly_long_file_name_14175
     5. (5). 67721 (0x10889): File    fairly_long_file_name_17034
     6. (6). 75993 (0x128d9): File    fairly_long_file_name_21170
     7. (7). 77717 (0x12f95): File    fairly_long_file_name_22031
     8. (8). 90967 (0x16357): File    fairly_long_file_name_28524
     9. (9). 94538 (0x1714a): File    fairly_long_file_name_30280
     10. (10). 96443 (0x178bb): File    fairly_long_file_name_31205
     11. (11). 98769 (0x181d1): File    fairly_long_file_name_32344
     12. (12). 104021 (0x19655): File    fairly_long_file_name_34929
     13. (13). 109902 (0x1ad4e): File    fairly_long_file_name_37868
     14. (14). 111468 (0x1b36c): File    fairly_long_file_name_38651
     15. (15). 113890 (0x1bce2): File    fairly_long_file_name_39862
     16. (16). 116638 (0x1c79e): File    fairly_long_file_name_41236
     17. (17). 118920 (0x1d088): File    fairly_long_file_name_42377
     18. (18). 125628 (0x1eabc): File    fairly_long_file_name_45729
     19. (19). 127512 (0x1f218): File    fairly_long_file_name_46668
     20. (20). 131537 (0x201d1): File    fairly_long_file_name_48662
     21. (21). 133973 (0x20b55): File    fairly_long_file_name_49851
     22. (22). 136639 (0x215bf): File    fairly_long_file_name_51143
     23. (23). 138408 (0x21ca8): File    fairly_long_file_name_52002
     24. (24). 140630 (0x22556): File    fairly_long_file_name_53087
     25. (25). 149975 (0x249d7): File    fairly_long_file_name_57598
     26. (26). 151844 (0x25124): File    fairly_long_file_name_58517
     27. (27). 154035 (0x259b3): File    fairly_long_file_name_59592
     28. (28). 155851 (0x260cb): File    fairly_long_file_name_60459
     29. (29). 162159 (0x2796f): File    fairly_long_file_name_63518
     30. (30). 163417 (0x27e59): File    fairly_long_file_name_64146
     31. (31). 167314 (0x28d92): File    fairly_long_file_name_66082
     32. (32). 169181 (0x294dd): File    fairly_long_file_name_67007
     33. (33). 171367 (0x29d67): File    fairly_long_file_name_68088
     34. (34). 183665 (0x2cd71): File    fairly_long_file_name_74233
     35. (35). 189943 (0x2e5f7): File    fairly_long_file_name_77372
     36. (36). 193955 (0x2f5a3): File    fairly_long_file_name_79378
     37. (37). 203446 (0x31ab6): File    fairly_long_file_name_84120
     38. (38). 209328 (0x331b0): File    fairly_long_file_name_87061
     39. (39). 219176 (0x35828): File    fairly_long_file_name_91979
     40. (40). 220906 (0x35eea): File    fairly_long_file_name_92838
     41. (41). 223761 (0x36a11): File    fairly_long_file_name_94255
     42. (42). 228054 (0x37ad6): File    fairly_long_file_name_96391
     43. (43). 229927 (0x38227): File    fairly_long_file_name_97314

   2 => 0x18502 / 99586
Directory block: lf_depth:11, lf_entries:43,fmt:1200 next=0x0 (43 dirents).
     1. (1). 172925 (0x2a37d): File    fairly_long_file_name_68867
     2. (2). 174507 (0x2a9ab): File    fairly_long_file_name_69654
     3. (3). 40697 (0x9ef9): File    fairly_long_file_name_3728
     4. (4). 42006 (0xa416): File    fairly_long_file_name_4376
     5. (5). 47812 (0xbac4): File    fairly_long_file_name_7237
     6. (6). 175549 (0x2adbd): File    fairly_long_file_name_70175
     7. (7). 53855 (0xd25f): File    fairly_long_file_name_10233
     8. (8). 60196 (0xeb24): File    fairly_long_file_name_13372
     9. (9). 181267 (0x2c413): File    fairly_long_file_name_73034
     10. (10). 194241 (0x2f6c1): File    fairly_long_file_name_79521
     11. (11). 71361 (0x116c1): File    fairly_long_file_name_18854
     12. (12). 72987 (0x11d1b): File    fairly_long_file_name_19667
     13. (13). 195731 (0x2fc93): File    fairly_long_file_name_80266
     14. (14). 77113 (0x12d39): File    fairly_long_file_name_21729
     15. (15). 201860 (0x31484): File    fairly_long_file_name_83327
     16. (16). 78999 (0x13497): File    fairly_long_file_name_22668
     17. (17). 84232 (0x14908): File    fairly_long_file_name_25236
     18. (18). 86615 (0x15257): File    fairly_long_file_name_26377
     19. (19). 204764 (0x31fdc): File    fairly_long_file_name_84779
     20. (20). 210482 (0x33632): File    fairly_long_file_name_87638
     21. (21). 212808 (0x33f48): File    fairly_long_file_name_88801
     22. (22). 214470 (0x345c6): File    fairly_long_file_name_89632
[root@west-02 ~]# 

This test has demonstrated the extended leaf information
printed by the new code, and not the old code.  Test 1 is
successful.

Comment 26 Robert Peterson 2011-05-25 20:07:23 UTC
Results from testing patch #2: "print hex numbers in lower-case"

Old code system:
Block #16    (0x10)           of 26214400 (0x1900000)  (superblock)
(p.1 of 4--Resrv)
00010000 01161970 00000001 00000000 00000000 [...p............] 
00010010 00000064 00000000 00000709 0000076C [...d...........l] 
00010020 00000000 00001000 0000000C 00000000 [................] 
00010030 00000000 00000002 00000000 00000017 [................] 
00010040 00000000 00000000 00000000 00000000 [................] 
00010050 00000000 00000001 00000000 00000016 [................] 
00010060 6C6F636B 5F6E6F6C 6F636B00 00000000 [lock_nolock.....] 
00010070 00000000 00000000 00000000 00000000 [................] 
00010080 00000000 00000000 00000000 00000000 [................] 
00010090 00000000 00000000 00000000 00000000 [................] 
000100A0 7268656C 353A6461 74613031 00000000 [rhel5:data01....] 
000100B0 00000000 00000000 00000000 00000000 [................] 
000100C0 00000000 00000000 00000000 00000000 [................] 
000100D0 00000000 00000000 00000000 00000000 [................] 
000100E0 00000000 00000000 00000000 00000000 [................] 
000100F0 00000000 00000000 00000000 00000000 [................] 
00010100 DB52D461 20E94043 FF69BD16 A2DBFECF [.R.a .@C.i......] 

New code QE system:
Block #16    (0x10) of 26214400 (0x1900000) (superblock)
(p.1 of 4--Resrv)
00010000 01161970 00000001 00000000 00000000 [...p............] mh_magic
00010010 00000064 00000000 00000709 0000076c [...d...........l] 
00010020 00000000 00001000 0000000c 00000000 [................] 
00010030 00000000 00000002 00000000 00000017 [................] 
00010040 00000000 00000000 00000000 00000000 [................] 
00010050 00000000 00000001 00000000 00000016 [................] 
00010060 6c6f636b 5f6e6f6c 6f636b00 00000000 [lock_nolock.....] 
00010070 00000000 00000000 00000000 00000000 [................] 
00010080 00000000 00000000 00000000 00000000 [................] 
00010090 00000000 00000000 00000000 00000000 [................] 
000100a0 626f623a 626f6200 00000000 00000000 [bob:bob.........] 
000100b0 00000000 00000000 00000000 00000000 [................] 
000100c0 00000000 00000000 00000000 00000000 [................] 
000100d0 00000000 00000000 00000000 00000000 [................] 
000100e0 00000000 00000000 00000000 00000000 [................] 
000100f0 00000000 00000000 00000000 00000000 [................] 
00010100 371a4b83 fd43570f 28860633 1e279964 [7.K..CW.(..3.'.d] 

As you can see, the old system printed the hex characters in
upper-case, and the QE system prints them in lower-case.
Test #2 is successful.

Comment 27 Robert Peterson 2011-05-25 20:16:48 UTC
Results from testing patch #3:
"negative block numbers don't jump a negative amount

This is a test of gfs2_edit's interactive mode.

Old code system:

Block #20    (0x14)           of 26214400 (0x1900000)  (rsrc grp bitblk)
(p.1 of 4--Resrv)
00014000 01161970 00000003 00000000 00000000 [...p............] 
00014010 0000012C 00000000 77777777 77777777 [...,....wwwwwwww] 

<up-arrow> to highlight block number
<enter> to change block number (to jump)
enter the value "-4" and <enter> to theoretically jump backward
four blocks:

Result:

Block #20    (0x14)           of 26214400 (0x1900000)  (rsrc grp bitblk)
(p.1 of 4--Resrv)
00014000 01161970 00000003 00000000 00000000 [...p............] 
00014010 0000012C 00000000 77777777 77777777 [...,....wwwwwwww] 


New code QE system:
Block #20    (0x14) of 26214400 (0x1900000) (rsrc grp bitblk)
(p.1 of 4--Resrv)
00014000 01161970 00000003 00000000 00000000 [...p............] mh_magic
00014010 0000012c 00000000 77777777 77777777 [...,....wwwwwwww]
<up-arrow> to highlight block number
<enter> to change block number (to jump)
enter the value "-4" and <enter> to theoretically jump backward
four blocks:

Result:

Block #16    (0x10) of 26214400 (0x1900000) (superblock)
(p.1 of 4--Resrv)
00010000 01161970 00000001 00000000 00000000 [...p............]
00010010 00000064 00000000 00000709 0000076c [...d...........l]

Test #3 passed.  When I entered a new block value of -4,
it jumped from block 20 back to block #16 on the QE system,
but not on the old code.

Comment 28 Robert Peterson 2011-05-25 20:26:37 UTC
Results from testing patch #4:
"tiny (stuffed) files had user data saved with savemeta"

Old code system:
[root@intec1 ~]# mkfs.gfs2 -O -p lock_nolock -t rhel5:data01 -j1 /dev/dcs/data01
Device:                    /dev/dcs/data01
Blocksize:                 4096
Device Size                100.00 GB (26214400 blocks)
Filesystem Size:           100.00 GB (26214398 blocks)
Journals:                  1
Resource Groups:           400
Locking Protocol:          "lock_nolock"
Lock Table:                "rhel5:data01"
UUID:                      80432748-E33A-0CEF-7857-BFB3D14620BA

[root@intec1 ~]# mount -tgfs2 /dev/dcs/data01 /mnt/gfs2
[root@intec1 ~]# echo "customer secret" > /mnt/gfs2/stuffed
[root@intec1 ~]# umount /mnt/gfs2
[root@intec1 ~]# gfs2_edit savemeta /dev/dcs/data01 /tmp/bob.meta
There are 26214400 blocks of 4096 bytes.
Reading resource groups...Done.

26214400 metadata blocks (100%) processed, 2346 metadata blocks (381KB) saved.    

Metadata saved to file /tmp/bob.meta.
[root@intec1 ~]# grep secret /tmp/bob.meta
Binary file /tmp/bob.meta matches

New code QE system:

[root@west-02 ~]# gfs2_edit savemeta /dev/west123/bob /tmp/bob.meta
There are 26214400 blocks of 4096 bytes in the destination device.
Reading resource groups...Done. File system size: 100.0G

142662 metadata blocks (0%) processed, 
[root@west-02 ~]# mkfs.gfs2 -O -t bob:bob -p lock_nolock -j1 /dev/west123/bob 
Device:                    /dev/west123/bob
Blocksize:                 4096
Device Size                100.00 GB (26214400 blocks)
Filesystem Size:           100.00 GB (26214398 blocks)
Journals:                  1
Resource Groups:           400
Locking Protocol:          "lock_nolock"
Lock Table:                "bob:bob"
UUID:                      1A672AF3-7CD4-09F5-FD8A-CC97ABBA0B8B

[root@west-02 ~]# mount -tgfs2 /dev/west123/bob /mnt/gfs2
[root@west-02 ~]# echo "customer secret" > /mnt/gfs2/stuffed
[root@west-02 ~]# umount /mnt/gfs2
[root@west-02 ~]# gfs2_edit savemeta /dev/west123/bob /tmp/bob.meta
There are 26214400 blocks of 4096 bytes in the destination device.
Reading resource groups...Done. File system size: 100.0G

26214400 metadata blocks (100%) processed, 

Metadata saved to file /tmp/bob.meta.
[root@west-02 ~]# grep secret /tmp/bob.meta
[root@west-02 ~]# 

Result: test #4 passed.  The secret data in the stuffed file was saved
on the old code, but not the new code.

Comment 29 Robert Peterson 2011-05-25 20:33:18 UTC
Results from testing patch #5:
"Give meaningful feedback for savemeta and restoremeta"

Old code system:
[root@intec1 ~]# gfs2_edit savemeta /dev/dcs/data01 /tmp/bob.meta
There are 26214400 blocks of 4096 bytes.
Reading resource groups...Done.

26214400 metadata blocks (100%) processed, 2346 metadata blocks (381KB) saved.    

Metadata saved to file /tmp/bob.meta.
[root@intec1 ~]# gfs2_edit restoremeta /tmp/bob.meta /dev/dcs/data01
There are 26214400 blocks of 4096 bytes in the destination file system.

2346 metadata blocks (9MB) restored.    
File /tmp/bob.meta restore successful.

New code QE system:
[root@west-02 ~]# gfs2_edit savemeta /dev/west123/bob /tmp/bob.meta
There are 26214400 blocks of 4096 bytes in the destination device.
Reading resource groups...Done. File system size: 100.0G

26214400 metadata blocks (100%) processed, 

Metadata saved to file /tmp/bob.meta.
[root@west-02 ~]# gfs2_edit restoremeta /tmp/bob.meta /dev/west123/bob
File system size: 26148869 (0x18f0005) blocks, aka 99.768GB
There are 26214400 blocks of 4096 bytes in the destination device.

26214400 metadata blocks (100%) processed, 
File /tmp/bob.meta restore successful.

Result: test #5 passed.  The QE system's savemeta told the
user that the file system size was 100.0G.  The old system didn't.
The QE system's restoremeta told the user the restore represented
"aka 99.768GB", and the old system didn't.

Comment 30 Robert Peterson 2011-05-25 20:49:52 UTC
Results from testing patch #6:
"Fix memory leak in savemeta option"

Old code system:
[root@intec1 ~]# valgrind --tool=memcheck --leak-check=summary gfs2_edit savemeta /dev/dcs/data01 /tmp/bob.meta &> /tmp/gronk
[root@intec1 ~]# grep -A1 "LEAK SUMMARY" /tmp/gronk
==23453== LEAK SUMMARY:
==23453==    definitely lost: 18,006,464 bytes in 4,348 blocks

New code QE system:
[root@west-02 ~]# valgrind --tool=memcheck --leak-check=summary gfs2_edit savemeta /dev/west123/bob /tmp/bob.meta &> /tmp/gronk
[root@west-02 ~]# grep -A1 "LEAK SUMMARY" /tmp/gronk
==32577== LEAK SUMMARY:
==32577==    definitely lost: 8,292,112 bytes in 2,016 blocks

Result: test #6 passed.  As you can see, valgrind indicates
the new savemeta definitely leaked less memory (10MB) than the
old code. This was done using the previous file system, so the
amount of metadata saved was minimal.  If the file system had
been more full, the results would be much more drastic.

I've never done valgrind testing on gfs2_edit before, and the
result tells me there might be more memory leaks we need to fix.

Comment 31 Robert Peterson 2011-05-25 20:51:24 UTC
Results from testing patch #7:
"Split extended display functions into extended.c"

This patch affected only the source code.  The fact that the
tool compiled at all proves the patch was successful.

Result: test #7 passed.

Comment 32 Robert Peterson 2011-05-25 20:52:13 UTC
Results from testing patch #8:
"Move more functions to extended.c"

This patch affected only the source code.  The fact that the
tool compiled at all proves the patch was successful.

Result: test #8 passed.

Comment 33 Robert Peterson 2011-05-26 12:55:54 UTC
Results from testing patch #9:
"Extend individual field printing/editing"

Old code system:
[root@intec1 ~]# gfs2_edit -p sb field sb_lockproto /dev/dcs/data01
1 (Block 16 is type 1: Superblock which is not implemented)
[root@intec1 ~]# gfs2_edit -p 0x5b field lh_blkno /dev/dcs/data01
8 (Block 91 is type 8: Log Header which is not implemented)
[root@intec1 ~]# gfs2_edit -p 0x805f /dev/dcs/data01
Block #32863    (0x805f) of 26214400 (0x1900000) (quota change)

Quota Change:
  qc_change             78278012352593934   0x11619700000000e
  qc_flags              0x00000000(hex)
  qc_id                 0                   0x0
------------------------------------------------------
[root@intec1 ~]# gfs2_edit -p 0x805f field qc_id /dev/dcs/data01
14 (Block 32863 is type 14: Quota Change which is not implemented)
[root@intec1 ~]# gfs2_edit -p 0x805f field qc_id 3 /dev/dcs/data01
14 (Block 32863 is type 14: Quota Change which is not implemented)
[root@intec1 ~]# gfs2_edit -p 0x6229 /dev/dcs/data01
Block #25129    (0x6229) of 26214400 (0x1900000) (log descriptor)

Log descriptor:
  mh_magic              0x01161970(hex)
  mh_type               9                   0x9
  mh_format             900                 0x384
  ld_type               300                 0x12c
  ld_length             9                   0x9
  ld_data1              8                   0x8
  ld_data2              0                   0x0
------------------------------------------------------
[root@intec1 ~]# gfs2_edit -p 0x6229 field ld_data2 /dev/dcs/data01
9 (Block 25129 is type 9: Log descriptor which is not implemented)

New code QE system:
[root@west-02 ~]# gfs2_edit -p sb field sb_lockproto /dev/west123/bob
lock_nolock
[root@west-02 ~]# gfs2_edit -p sb field sb_lockproto "lock_dlm" /dev/west123/bob
lock_dlm
[root@west-02 ~]# gfs2_edit -p 0x5b field lh_blkno /dev/west123/bob
0
[root@west-02 ~]# gfs2_edit -p 0x5b field lh_blkno 0x33 /dev/west123/bob
51
[root@west-02 ~]# gfs2_edit -p 0x5b field lh_blkno /dev/west123/bob
51
[root@west-02 ~]# gfs2_edit -p 0x805f /dev/west123/bob
Block #32863    (0x805f) of 26214400 (0x1900000) (quota change)

Quota Change:
  qc_change             0                   0x0
  qc_flags              0x00000000(hex)
  qc_id                 0                   0x0
------------------------------------------------------
[root@west-02 ~]# gfs2_edit -p 0x805f field qc_id /dev/west123/bob
0
[root@west-02 ~]# gfs2_edit -p 0x805f field qc_id 3 /dev/west123/bob
3
[root@west-02 ~]# gfs2_edit -p 0x805f field qc_id /dev/west123/bob
3
[root@west-02 ~]# gfs2_edit -p 0x1c47 /dev/west123/bob
Block #7239    (0x1c47) of 26214400 (0x1900000) (log descriptor)

Log descriptor:
  mh_magic              0x01161970(hex)
  mh_type               9                   0x9
  mh_format             900                 0x384
  ld_type               300                 0x12c
  ld_length             10                  0xa
  ld_data1              9                   0x9
  ld_data2              0                   0x0
------------------------------------------------------
[root@west-02 ~]# gfs2_edit -p 0x1c47 field ld_data2 /dev/west123/bob
0
[root@west-02 ~]# gfs2_edit -p 0x1c47 field ld_data2 7 /dev/west123/bob
7
[root@west-02 ~]# gfs2_edit -p 0x1c47 field ld_data2 /dev/west123/bob
7

Result: test #9 passed.  Fields in the superblock, log headers,
quota change and log descriptors were invalid in the old code,
but the new code allows them to be printed and changed.

Comment 34 Robert Peterson 2011-05-26 13:02:16 UTC
Results from testing patch #10:

Old code system: "fix page down on rindex"
Block #33121    (0x8161)      of 26214400 (0x1900000)  (disk inode)
---------------- rindex file -------------------
RG index entries found: 400.
RG #0
  ri_addr               17                        0x11
  ri_length             5                         0x5
  ri_data0              22                        0x16
  ri_data               65912                     0x10178
  ri_bitbytes           16478                     0x405e
...
RG #12
  ri_addr               786820                    0xc0184
  ri_length             5                         0x5
  ri_data0              786825                    0xc0189
  ri_data               65528                     0xfff8
  ri_bitbytes           16382                     0x3ffe
<page down pressed>
Block #33121    (0x8161)      of 26214400 (0x1900000)  (disk inode)
---------------- rindex file -------------------
RG index entries found: 400.
RG #0
  ri_addr               17                        0x11
  ri_length             5                         0x5
  ri_data0              22                        0x16
  ri_data               65912                     0x10178
  ri_bitbytes           16478                     0x405e
...
RG #12
  ri_addr               786820                    0xc0184
  ri_length             5                         0x5
  ri_data0              786825                    0xc0189
  ri_data               65528                     0xfff8
  ri_bitbytes           16382                     0x3ffe

New code QE system:
Block #33121    (0x8161) of 26214400 (0x1900000) (disk inode)
---------------- rindex file -------------------
RG index entries found: 400.
RG #0
  ri_addr               17                        0x11
  ri_length             5                         0x5
  ri_data0              22                        0x16
  ri_data               65912                     0x10178
  ri_bitbytes           16478                     0x405e
...
RG #14
  ri_addr               917890                    0xe0182
  ri_length             5                         0x5
  ri_data0              917895                    0xe0187
  ri_data               65528                     0xfff8
  ri_bitbytes           16382                     0x3ffe
<page down pressed>
Block #33121    (0x8161) of 26214400 (0x1900000) (disk inode)
---------------- rindex file -------------------
RG index entries found: 400.
RG #15
  ri_addr               983425                    0xf0181
  ri_length             5                         0x5
  ri_data0              983430                    0xf0186
  ri_data               65528                     0xfff8
  ri_bitbytes           16382                     0x3ffe
...
RG #29
  ri_addr               1900915                   0x1d0173
  ri_length             5                         0x5
  ri_data0              1900920                   0x1d0178
  ri_data               65528                     0xfff8
  ri_bitbytes           16382                     0x3ffe

Result: test #10 passed.  Page down worked properly for rindex
on the new system, but not the old system, which stayed on RG #0.
The number of lines was different for the two systems, so more
entries were displayed on the new system.

Comment 35 Robert Peterson 2011-05-26 13:11:57 UTC
Results from testing patch #11:- "print field names in right column"

Old code system:
[root@intec1 ~]# gfs2_edit /dev/dcs/data01
Block #16    (0x10)           of 26214400 (0x1900000)  (superblock)
(p.1 of 4--Resrv)
00010000 01161970 00000001 00000000 00000000 [...p............] 
00010010 00000064 00000000 00000709 0000076C [...d...........l] 
00010020 00000000 00001000 0000000C 00000000 [................] 
00010030 00000000 00000002 00000000 00000017 [................] 
00010040 00000000 00000000 00000000 00000000 [................] 
00010050 00000000 00000001 00000000 00000016 [................] 
00010060 6C6F636B 5F6E6F6C 6F636B00 00000000 [lock_nolock.....] 
<down arrow pressed>
00010000 01161970 00000001 00000000 00000000 [...p............] 
00010010 00000064 00000000 00000709 0000076C [...d...........l] 
00010020 00000000 00001000 0000000C 00000000 [................] 
00010030 00000000 00000002 00000000 00000017 [................] 
00010040 00000000 00000000 00000000 00000000 [................] 
00010050 00000000 00000001 00000000 00000016 [................] 
00010060 6C6F636B 5F6E6F6C 6F636B00 00000000 [lock_nolock.....] 
<down arrow pressed>
00010000 01161970 00000001 00000000 00000000 [...p............] 
00010010 00000064 00000000 00000709 0000076C [...d...........l] 
00010020 00000000 00001000 0000000C 00000000 [................] 
00010030 00000000 00000002 00000000 00000017 [................] 
00010040 00000000 00000000 00000000 00000000 [................] 
00010050 00000000 00000001 00000000 00000016 [................] 
00010060 6C6F636B 5F6E6F6C 6F636B00 00000000 [lock_nolock.....] 
<down arrow pressed>
00010000 01161970 00000001 00000000 00000000 [...p............] 
00010010 00000064 00000000 00000709 0000076C [...d...........l] 
00010020 00000000 00001000 0000000C 00000000 [................] 
00010030 00000000 00000002 00000000 00000017 [................] 
00010040 00000000 00000000 00000000 00000000 [................] 
00010050 00000000 00000001 00000000 00000016 [................] 
00010060 6C6F636B 5F6E6F6C 6F636B00 00000000 [lock_nolock.....] 
Pressed "f" to go forward one block.
Block #17    (0x11)           of 26214400 (0x1900000)  (rsrc grp hdr)
(p.1 of 4--Resrv)
00011000 01161970 00000002 00000000 00000000 [...p............] 
00011010 000000C8 00000000 00000000 0000801F [................] 
00011020 0000000D 00000000 00000000 00000001 [................] 
<down arrow pressed>
00011000 01161970 00000002 00000000 00000000 [...p............] 
00011010 000000C8 00000000 00000000 0000801F [................] 
00011020 0000000D 00000000 00000000 00000001 [................] 
<down arrow pressed>
00011000 01161970 00000002 00000000 00000000 [...p............] 
00011010 000000C8 00000000 00000000 0000801F [................] 
00011020 0000000D 00000000 00000000 00000001 [................] 
Pressed "f" to go forward one block.
Block #18    (0x12)           of 26214400 (0x1900000)  (rsrc grp bitblk)
(p.1 of 4--Resrv)
00012000 01161970 00000003 00000000 00000000 [...p............] 
00012010 0000012C 00000000 55555555 55555555 [...,....UUUUUUUU] 


New code QE system:
[root@west-02 ~]# gfs2_edit /dev/west123/bob
Block #16    (0x10) of 26214400 (0x1900000) (superblock)
(p.1 of 4--Resrv)
00010000 01161970 00000001 00000000 00000000 [...p............] mh_magic
00010010 00000064 00000000 00000709 0000076c [...d...........l] 
00010020 00000000 00001000 0000000c 00000000 [................] 
00010030 00000000 00000002 00000000 00000017 [................] 
00010040 00000000 00000000 00000000 00000000 [................] 
00010050 00000000 00000001 00000000 00000016 [................] 
00010060 6c6f636b 5f646c6d 00000000 00000000 [lock_dlm........] 
<down arrow pressed>
00010000 01161970 00000001 00000000 00000000 [...p............] 
00010010 00000064 00000000 00000709 0000076c [...d...........l] mh_format
00010020 00000000 00001000 0000000c 00000000 [................] 
00010030 00000000 00000002 00000000 00000017 [................] 
00010040 00000000 00000000 00000000 00000000 [................] 
00010050 00000000 00000001 00000000 00000016 [................] 
00010060 6c6f636b 5f646c6d 00000000 00000000 [lock_dlm........] 
<down arrow pressed>
00010020 00000000 00001000 0000000c 00000000 [................] __pad0
00010030 00000000 00000002 00000000 00000017 [................] 
00010040 00000000 00000000 00000000 00000000 [................] 
00010050 00000000 00000001 00000000 00000016 [................] 
00010060 6c6f636b 5f646c6d 00000000 00000000 [lock_dlm........] 
<down arrow pressed>
00010000 01161970 00000001 00000000 00000000 [...p............] 
00010010 00000064 00000000 00000709 0000076c [...d...........l] 
00010020 00000000 00001000 0000000c 00000000 [................] 
00010030 00000000 00000002 00000000 00000017 [................] master.no_formal_ino
00010040 00000000 00000000 00000000 00000000 [................] 
00010050 00000000 00000001 00000000 00000016 [................] 
00010060 6c6f636b 5f646c6d 00000000 00000000 [lock_dlm........] 
Pressed "f" to go forward one block.
Block #17    (0x11) of 26214400 (0x1900000) (rsrc grp hdr)
(p.1 of 4--Resrv)
00011000 01161970 00000002 00000000 00000000 [...p............] mh_magic
00011010 000000c8 00000000 00000000 0000801f [................] 
00011020 0000000d 00000000 00000000 00000001 [................] 
<down arrow pressed>
00011000 01161970 00000002 00000000 00000000 [...p............] 
00011010 000000c8 00000000 00000000 0000801f [................] mh_format
00011020 0000000d 00000000 00000000 00000001 [................] 
<down arrow pressed>
00011000 01161970 00000002 00000000 00000000 [...p............] 
00011010 000000c8 00000000 00000000 0000801f [................] 
00011020 0000000d 00000000 00000000 00000001 [................] rg_dinodes
Pressed "f" to go forward one block.
Block #18    (0x12) of 26214400 (0x1900000) (rsrc grp bitblk)
(p.1 of 4--Resrv)
00012000 01161970 00000003 00000000 00000000 [...p............] mh_magic
00012010 0000012c 00000000 55555555 55555555 [...,....UUUUUUUU]

Result: test #11 passed.  On the new system, the field names are printed
in the right-hand column.  On the old system, they were not.

Comment 36 Robert Peterson 2011-05-26 13:21:56 UTC
Results from testing patch #12: "handle corrupt file systems better"

Old code system:
[root@intec1 ~]# dd if=/dev/zero of=/dev/dcs/data01 bs=4096 seek=16 count=1
1+0 records in
1+0 records out
4096 bytes (4.1 kB) copied, 0.007069 seconds, 579 kB/s
[root@intec1 ~]# gfs2_edit /dev/dcs/data01
Segmentation fault

New code QE system:
[root@west-02 ~]# dd if=/dev/zero of=/dev/west123/bob bs=4096 seek=16 count=1
1+0 records in
1+0 records out
4096 bytes (4.1 kB) copied, 0.00048 seconds, 8.5 MB/s
[root@west-02 ~]# gfs2_edit /dev/west123/bob
Block #0    (0x0) of 26214400 (0x1900000)
(p.1 of 4--Resrv)--------------- Root directory ------------------
00000000 00000000 00000000 00000000 00000000 [................]
00000010 00000000 00000000 00000000 00000000 [................]
00000020 00000000 00000000 00000000 00000000 [................]
00000030 00000000 00000000 00000000 00000000 [................]
00000040 00000000 00000000 00000000 00000000 [................]
00000050 00000000 00000000 00000000 00000000 [................]
00000060 00000000 00000000 00000000 00000000 [................]
00000070 00000000 00000000 00000000 00000000 [................]
00000080 00000000 00000000 00000000 00000000 [................]

Result: test #12 passed.  The old system segfaulted when trying
to access the file system that had its superblock blasted.  The
new system took it in stride and displayed the first block of data.

Comment 37 Robert Peterson 2011-05-26 13:34:49 UTC
Results from testing patch #13: "print large block numbers better"

Old code system:
[root@intec1 ~]# lvcreate --virtualsize 2T -L100G -n data01 /dev/dcs
  /dev/sdl: read failed after 0 of 4096 at 0: Input/output error
  /dev/sdn: read failed after 0 of 4096 at 0: Input/output error
  Logical volume "data01" created
[root@intec1 ~]# mkfs.gfs2 -O -p lock_nolock -t rhel5:data01 -j1 /dev/dcs/data01
Device:                    /dev/dcs/data01
Blocksize:                 4096
Device Size                2048.00 GB (536870912 blocks)
Filesystem Size:           2048.00 GB (536870910 blocks)
Journals:                  1
Resource Groups:           8192
Locking Protocol:          "lock_nolock"
Lock Table:                "rhel5:data01"
UUID:                      3C1E5254-CADB-F255-1950-28C942F41957

[root@intec1 ~]# gfs2_edit /dev/dcs/data01
(Pressed up-arrow, <enter> and entered block 0x1fffff00)
Block #536870656    (0x1fffff0of 536870912 (0x20000000)
(p.1 of 4--Free )
000001FFFFF00000 00000000 00000000 00000000 00000000 [................]
000001FFFFF00010 00000000 00000000 00000000 00000000 [................]

New code QE system:
[root@west-02 ~]# lvcreate --virtualsize 2T -L100G -n bob /dev/west123 
  Logical volume "bob" created
[root@west-02 ~]# mkfs.gfs2 -O -t bob:bob -p lock_nolock -j1 /dev/west123/bob 
Device:                    /dev/west123/bob
Blocksize:                 4096
Device Size                2048.00 GB (536870912 blocks)
Filesystem Size:           2048.00 GB (536870910 blocks)
Journals:                  1
Resource Groups:           8192
Locking Protocol:          "lock_nolock"
Lock Table:                "bob:bob"
UUID:                      D004C79D-4994-AB2F-F9A0-8D35FF50252F

[root@west-02 ~]# gfs2_edit /dev/west123/bob
(Pressed up-arrow, <enter> and entered block 0x1fffff00)
Block #536870656    (0x1fffff00) of 536870912 (0x20000000)
(p.1 of 4--Free )
000001fffff00000 00000000 00000000 00000000 00000000 [................]
000001fffff00010 00000000 00000000 00000000 00000000 [................]

Result: test #13 passed.  On the old code, the large block number
ran into the other information.  On the new code, the block number
printed correctly.

Comment 38 Robert Peterson 2011-05-26 14:04:33 UTC
Results from testing patch #14: "Problems printing gfs1 journals"

Old code system:
[root@intec1 ~]# gfs_mkfs -O -p lock_nolock -t rhel5:data01 -j1 /dev/dcs/data01
Device:                    /dev/dcs/data01
Blocksize:                 4096
Filesystem Size:           536776688
Journals:                  1
Resource Groups:           8192
Locking Protocol:          lock_nolock
Lock Table:                rhel5:data01

Syncing...
All Done
[root@intec1 ~]# gfs2_edit -p journal0 /dev/dcs/data01 > /tmp/gronk
Segmentation fault

New code QE system:
[root@west-02 yum.repos.d]# gfs_mkfs -O -t bob:bob -p lock_nolock -j1 /dev/west123/bob 
Device:                    /dev/west123/bob
Blocksize:                 4096
Filesystem Size:           536776688
Journals:                  1
Resource Groups:           8192
Locking Protocol:          lock_nolock
Lock Table:                bob:bob

Syncing...
All Done
[root@west-02 yum.repos.d]# gfs2_edit -p journal0 /dev/west123/bob > /tmp/gronk
[root@west-02 yum.repos.d]# wc -l /tmp/gronk
2052 /tmp/gronk
[root@west-02 yum.repos.d]# 

Result: test #14 passed.  The old code segfaulted, but the new one
printed as expected.

Comment 39 Robert Peterson 2011-05-26 14:16:23 UTC
Results from testing patch #15: 
"Add -d option for printing journal details"

Old code system:
[root@intec1 ~]# mkfs.gfs2 -O -p lock_nolock -t rhel5:data01 -j1 /dev/dcs/data01
Device:                    /dev/dcs/data01
Blocksize:                 4096
Device Size                2048.00 GB (536870912 blocks)
Filesystem Size:           2048.00 GB (536870910 blocks)
Journals:                  1
Resource Groups:           8192
Locking Protocol:          "lock_nolock"
Lock Table:                "rhel5:data01"
UUID:                      AD7CAAE2-2DD0-9FA3-D5D9-DE5C135B8B35

[root@intec1 ~]# mount -tgfs2 /dev/dcs/data01 /mnt/gfs2
[root@intec1 ~]# cp /etc/fstab /mnt/gfs2/
[root@intec1 ~]# umount /mnt/gfs2
[root@intec1 ~]# gfs2_edit -p journal0 /dev/dcs/data01 | grep -A 30 "Log desc"
0x562b (j+55d0): Log descriptor, type 300 (Metadata) len:9, data1: 8
                    0x16               0x8224             0x8223             0x805d             
                    0x11               0x13               0x805c             0x815f             
0x5634 (j+55d9): Log header: Seq: 0x8000, tail: 0x55d0, blk: 0x55d9
0x5635 (j+55da): Log header: Seq: 0x8001, tail: 0x55da, blk: 0x55da
0x5636 (j+55db): Log descriptor, type 300 (Metadata) len:3, data1: 2
                    0x8160             0x805d             
0x5639 (j+55de): Log header: Seq: 0x8002, tail: 0x55db, blk: 0x55de
0x563a (j+55df): Log descriptor, type 301 (Revoke) len:1, data1: 1
                    0x8160             
0x563b (j+55e0): Log header: Seq: 0x8003, tail: 0x55df, blk: 0x55e0
0x563c (j+55e1): Log header: Seq: 0x8004, tail: 0x55e1, blk: 0x55e1
------------------------------------------------------------------------------------------------
Journal wrapped here.
------------------------------------------------------------------------------------------------
0x563d (j+55e2): Log header: Seq: 0x12, tail: 0x0, blk: 0x55e2
0x563e (j+55e3): Log header: Seq: 0x13, tail: 0x0, blk: 0x55e3
0x563f (j+55e4): Log header: Seq: 0x14, tail: 0x0, blk: 0x55e4
0x5640 (j+55e5): Log header: Seq: 0x15, tail: 0x0, blk: 0x55e5
0x5641 (j+55e6): Log header: Seq: 0x16, tail: 0x0, blk: 0x55e6
0x5642 (j+55e7): Log header: Seq: 0x17, tail: 0x0, blk: 0x55e7
0x5643 (j+55e8): Log header: Seq: 0x18, tail: 0x0, blk: 0x55e8
0x5644 (j+55e9): Log header: Seq: 0x19, tail: 0x0, blk: 0x55e9
0x5645 (j+55ea): Log header: Seq: 0x1a, tail: 0x0, blk: 0x55ea
0x5646 (j+55eb): Log header: Seq: 0x1b, tail: 0x0, blk: 0x55eb
0x5647 (j+55ec): Log header: Seq: 0x1c, tail: 0x0, blk: 0x55ec
0x5648 (j+55ed): Log header: Seq: 0x1d, tail: 0x0, blk: 0x55ed
0x5649 (j+55ee): Log header: Seq: 0x1e, tail: 0x0, blk: 0x55ee
0x564a (j+55ef): Log header: Seq: 0x1f, tail: 0x0, blk: 0x55ef
0x564b (j+55f0): Log header: Seq: 0x20, tail: 0x0, blk: 0x55f0
0x564c (j+55f1): Log header: Seq: 0x21, tail: 0x0, blk: 0x55f1
0x564d (j+55f2): Log header: Seq: 0x22, tail: 0x0, blk: 0x55f2
0x564e (j+55f3): Log header: Seq: 0x23, tail: 0x0, blk: 0x55f3
0x564f (j+55f4): Log header: Seq: 0x24, tail: 0x0, blk: 0x55f4
0x5650 (j+55f5): Log header: Seq: 0x25, tail: 0x0, blk: 0x55f5
0x5651 (j+55f6): Log header: Seq: 0x26, tail: 0x0, blk: 0x55f6
0x5652 (j+55f7): Log header: Seq: 0x27, tail: 0x0, blk: 0x55f7
0x5653 (j+55f8): Log header: Seq: 0x28, tail: 0x0, blk: 0x55f8
0x5654 (j+55f9): Log header: Seq: 0x29, tail: 0x0, blk: 0x55f9

New code QE system:
[root@west-02 yum.repos.d]# mkfs.gfs2 -O -t bob:bob -p lock_nolock -j1 /dev/west123/bob 
Device:                    /dev/west123/bob
Blocksize:                 4096
Device Size                2048.00 GB (536870912 blocks)
Filesystem Size:           2048.00 GB (536870910 blocks)
Journals:                  1
Resource Groups:           8192
Locking Protocol:          "lock_nolock"
Lock Table:                "bob:bob"
UUID:                      D248704C-6AAC-07D7-F6DD-2D0C702EE30D

[root@west-02 yum.repos.d]# mount -tgfs2 /dev/west123/bob /mnt/gfs2
[root@west-02 yum.repos.d]# cp /etc/fstab /mnt/gfs2/
[root@west-02 yum.repos.d]# umount /mnt/gfs2
[root@west-02 yum.repos.d]# gfs2_edit -d -p journal0 /dev/west123/bob | grep -A 30 "Log desc"
0x7754 (j+76f9): Log descriptor, type 300 (Metadata) len:9, data1: 8
                    0x16               0x8225             0x8224             0x805d             
                    0x11               0x13               0x805c             0x815f             
Block #30549    (0x7755) of 536870912 (0x20000000) (disk inode)

Dinode:
  mh_magic              0x01161970(hex)
  mh_type               4                   0x4
  mh_format             400                 0x190
  no_formal_ino         1                   0x1
  no_addr               22                  0x16
  di_mode               040755(decimal)
  di_uid                0                   0x0
  di_gid                0                   0x0
  di_nlink              2                   0x2
  di_size               3864                0xf18
  di_blocks             1                   0x1
  di_atime              1306418907          0x4dde5edb
  di_mtime              1306418937          0x4dde5ef9
  di_ctime              1306418937          0x4dde5ef9
  di_major              0                   0x0
  di_minor              0                   0x0
  di_goal_meta          22                  0x16
  di_goal_data          22                  0x16
  di_flags              0x00000001(hex)
  di_payload_format     1200                0x4b0
  di_height             0                   0x0
  di_depth              0                   0x0
  di_entries            3                   0x3
  di_eattr              0                   0x0
Block #30550    (0x7756) of 536870912 (0x20000000) (extended attr hdr)
--
0x775f (j+7704): Log descriptor, type 300 (Metadata) len:3, data1: 2
                    0x8160             0x805d             
Block #30560    (0x7760) of 536870912 (0x20000000) (disk inode)

Dinode:
  mh_magic              0x01161970(hex)
  mh_type               4                   0x4
  mh_format             400                 0x190
  no_formal_ino         10                  0xa
  no_addr               33120               0x8160
  di_mode               0100600(decimal)
  di_uid                0                   0x0
  di_gid                0                   0x0
  di_nlink              1                   0x1
  di_size               24                  0x18
  di_blocks             1                   0x1
  di_atime              1306418907          0x4dde5edb
  di_mtime              1306418907          0x4dde5edb
  di_ctime              1306418907          0x4dde5edb
  di_major              0                   0x0
  di_minor              0                   0x0
  di_goal_meta          33120               0x8160
  di_goal_data          33120               0x8160
  di_flags              0x00000201(hex)
  di_payload_format     0                   0x0
  di_height             0                   0x0
  di_depth              0                   0x0
  di_entries            0                   0x0
  di_eattr              0                   0x0
Block #30561    (0x7761) of 536870912 (0x20000000) (disk inode)

--
0x7763 (j+7708): Log descriptor, type 301 (Revoke) len:1, data1: 1
                    0x8160             
0x7764 (j+7709): Log header: Seq: 0x8003, tail: 0x7708, blk: 0x7709
0x7765 (j+770a): Log header: Seq: 0x8004, tail: 0x770a, blk: 0x770a
------------------------------------------------------------------------------------------------
Journal wrapped here.
------------------------------------------------------------------------------------------------
0x7766 (j+770b): Log header: Seq: 0x12, tail: 0x0, blk: 0x770b
0x7767 (j+770c): Log header: Seq: 0x13, tail: 0x0, blk: 0x770c
0x7768 (j+770d): Log header: Seq: 0x14, tail: 0x0, blk: 0x770d
0x7769 (j+770e): Log header: Seq: 0x15, tail: 0x0, blk: 0x770e
0x776a (j+770f): Log header: Seq: 0x16, tail: 0x0, blk: 0x770f
0x776b (j+7710): Log header: Seq: 0x17, tail: 0x0, blk: 0x7710
0x776c (j+7711): Log header: Seq: 0x18, tail: 0x0, blk: 0x7711
0x776d (j+7712): Log header: Seq: 0x19, tail: 0x0, blk: 0x7712
0x776e (j+7713): Log header: Seq: 0x1a, tail: 0x0, blk: 0x7713
0x776f (j+7714): Log header: Seq: 0x1b, tail: 0x0, blk: 0x7714
0x7770 (j+7715): Log header: Seq: 0x1c, tail: 0x0, blk: 0x7715
0x7771 (j+7716): Log header: Seq: 0x1d, tail: 0x0, blk: 0x7716
0x7772 (j+7717): Log header: Seq: 0x1e, tail: 0x0, blk: 0x7717
0x7773 (j+7718): Log header: Seq: 0x1f, tail: 0x0, blk: 0x7718
0x7774 (j+7719): Log header: Seq: 0x20, tail: 0x0, blk: 0x7719
0x7775 (j+771a): Log header: Seq: 0x21, tail: 0x0, blk: 0x771a
0x7776 (j+771b): Log header: Seq: 0x22, tail: 0x0, blk: 0x771b
0x7777 (j+771c): Log header: Seq: 0x23, tail: 0x0, blk: 0x771c
0x7778 (j+771d): Log header: Seq: 0x24, tail: 0x0, blk: 0x771d
0x7779 (j+771e): Log header: Seq: 0x25, tail: 0x0, blk: 0x771e
0x777a (j+771f): Log header: Seq: 0x26, tail: 0x0, blk: 0x771f
0x777b (j+7720): Log header: Seq: 0x27, tail: 0x0, blk: 0x7720
0x777c (j+7721): Log header: Seq: 0x28, tail: 0x0, blk: 0x7721
0x777d (j+7722): Log header: Seq: 0x29, tail: 0x0, blk: 0x7722
[root@west-02 yum.repos.d]# gfs2_edit -x -d -p journal0 /dev/west123/bob | grep -A 15 "Log desc"
0x7754 (j+76f9): Log descriptor, type 300 (Metadata) len:9, data1: 8
                    0x16               0x8225             0x8224             0x805d             
                    0x11               0x13               0x805c             0x815f             
Block #30549    (0x7755) of 536870912 (0x20000000) (disk inode)

07755000 01161970 00000004 00000000 00000000 [...p............] 
07755010 00000190 00000000 00000000 00000001 [................] 
07755020 00000000 00000016 000041ed 00000000 [..........A.....] 
07755030 00000000 00000002 00000000 00000f18 [................] 
07755040 00000000 00000001 00000000 4dde5edb [............M.^.] 
07755050 00000000 4dde5ef9 00000000 4dde5ef9 [....M.^.....M.^.] 
07755060 00000000 00000000 00000000 00000016 [................] 
07755070 00000000 00000016 00000000 00000000 [................] 
07755080 00000001 000004b0 00000000 00000000 [................] 
07755090 00000000 00000003 00000000 00000000 [................] 
077550a0 00000000 00000000 00000000 00000000 [................] 
--
0x775f (j+7704): Log descriptor, type 300 (Metadata) len:3, data1: 2
                    0x8160             0x805d             
Block #30560    (0x7760) of 536870912 (0x20000000) (disk inode)

07760000 01161970 00000004 00000000 00000000 [...p............] 
07760010 00000190 00000000 00000000 0000000a [................] 
07760020 00000000 00008160 00008180 00000000 [.......`........] 
07760030 00000000 00000001 00000000 00000018 [................] 
07760040 00000000 00000001 00000000 4dde5edb [............M.^.] 
07760050 00000000 4dde5edb 00000000 4dde5edb [....M.^.....M.^.] 
07760060 00000000 00000000 00000000 00008160 [...............`] 
07760070 00000000 00008160 00000000 00000000 [.......`........] 
07760080 00000201 00000000 00000000 00000000 [................] 
07760090 00000000 00000000 00000000 00000000 [................] 
077600a0 00000000 00000000 00000000 00000000 [................] 
077600b0 00000000 00000000 00000000 00000000 [................] 
--
0x7763 (j+7708): Log descriptor, type 301 (Revoke) len:1, data1: 1
                    0x8160             
0x7764 (j+7709): Log header: Seq: 0x8003, tail: 0x7708, blk: 0x7709
0x7765 (j+770a): Log header: Seq: 0x8004, tail: 0x770a, blk: 0x770a
------------------------------------------------------------------------------------------------
Journal wrapped here.
------------------------------------------------------------------------------------------------
0x7766 (j+770b): Log header: Seq: 0x12, tail: 0x0, blk: 0x770b
0x7767 (j+770c): Log header: Seq: 0x13, tail: 0x0, blk: 0x770c
0x7768 (j+770d): Log header: Seq: 0x14, tail: 0x0, blk: 0x770d
0x7769 (j+770e): Log header: Seq: 0x15, tail: 0x0, blk: 0x770e
0x776a (j+770f): Log header: Seq: 0x16, tail: 0x0, blk: 0x770f
0x776b (j+7710): Log header: Seq: 0x17, tail: 0x0, blk: 0x7710
0x776c (j+7711): Log header: Seq: 0x18, tail: 0x0, blk: 0x7711
0x776d (j+7712): Log header: Seq: 0x19, tail: 0x0, blk: 0x7712
0x776e (j+7713): Log header: Seq: 0x1a, tail: 0x0, blk: 0x7713

Result: test #15 passed.  When the -d option is specified,
the old version printed no journal details.  The new version
printed the metadata details.  When -x is also specified, the
details are printed properly in hex.

Comment 40 Robert Peterson 2011-05-26 14:24:38 UTC
Results from testing patch #16: "Print block allocations for bitmaps"

Old code system:
Block #17    (0x11)           of 536870912 (0x20000000)(rsrc grp hdr)
(p.2 of 4--Resrv)
00011500 55555555 55555555 55555555 55555555 [UUUUUUUUUUUUUUUU]

New code QE system:
Block #17    (0x11) of 536870912 (0x20000000) (rsrc grp hdr)
(p.2 of 4--Resrv) blk 0x1216-Data   0x1217-Data   0x1218-Data   0x1219-Data   
00011500 55555555 55555555 55555555 55555555 [UUUUUUUUUUUUUUUU]

Result: test #16 passed.  When I positioned my cursor to the second
page of the first bitmap, the new version printed the block allocations
for the highlighted byte whereas the old version did not:
"blk 0x1216-Data   0x1217-Data   0x1218-Data   0x1219-Data"

Comment 41 Robert Peterson 2011-05-26 14:25:21 UTC
My testing is completed for this bug record; all tests passed.

Comment 42 Martin Juricek 2011-05-27 06:21:55 UTC
Changing status to VERIFIED, testing has been done by Bob.

Comment 43 errata-xmlrpc 2011-07-21 11:02:24 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2011-1042.html


Note You need to log in before you can comment on or make changes to this bug.