Created attachment 468473 [details] patch 1
Created attachment 468474 [details] patch 2
Created attachment 468475 [details] patch 3
Created attachment 468476 [details] patch 4
Created attachment 468477 [details] patch 5
Created attachment 468478 [details] patch 6
Created attachment 468479 [details] patch 7
Created attachment 468480 [details] patch 8
Created attachment 468481 [details] patch 9
Created attachment 468482 [details] patch 10
Created attachment 468483 [details] patch 11
Created attachment 476657 [details] patch 12
Created attachment 476658 [details] patch 13
Created attachment 476659 [details] patch 14
Created attachment 476660 [details] patch 15
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.
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
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.
I built this into gfs2-utils-0.1.62-29.el5. Changing status to Modified.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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"
My testing is completed for this bug record; all tests passed.
Changing status to VERIFIED, testing has been done by Bob.
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