[LU-193] e2fsprogs failing f_messy_inode on i686: Inode 14 is badly corrupt (badness value = 15). Clear? yes Created: 06/Apr/11 Updated: 26/Oct/11 Resolved: 19/May/11 |
|
| Status: | Closed |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.1.0 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Brian Murrell (Inactive) | Assignee: | Andreas Dilger |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
i686 rhel5 |
||
| Story Points: | 3 |
| Severity: | 3 |
| Rank (Obsolete): | 10094 |
| Description |
|
While trying to build e2fsprogs-master on rhel5/i686 f_messy_inode fails with: --- ./f_messy_inode/expect.1 2011-04-06 19:07:07.000000000 +0000
+++ f_messy_inode.1.log 2011-04-06 19:09:56.000000000 +0000
@@ -20,7 +20,7 @@
i_file_acl for inode 14 (/MAKEDEV) is 4294901760, should be zero.
Clear? yes
-Inode 14 is badly corrupt (badness value = 13). Clear? yes
+Inode 14 is badly corrupt (badness value = 15). Clear? yes
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
I realize that we don't really support i686 but I wonder if this is a bug that is lurking that we have been missing by not testing portably. That said, I seem to recall seeing this issue as a result of portability before. |
| Comments |
| Comment by Andreas Dilger [ 07/Apr/11 ] |
|
It is definitely worthwhile to see why the test runs differently on 32-bit vs. 64-bit machines. If you extract this image by hand (zcat image.gz > /tmp/image) and run "e2fsck -v -v -d -d" it will print all the reasons why badness is increased, then diff the results. |
| Comment by Andreas Dilger [ 29/Apr/11 ] |
|
The 13 errors detected on inode 14 on my 64-bit system are: Pass 1: Checking inodes, blocks, and sizes Illegal block #2 (4294901760) in inode 14. CLEARED. check_blocks:2486: increase inode 14 badness 11 to 12 Pass 2: Checking directory structure Inode 14 is badly corrupt (badness value = 13). Clear? yes Unfortunately, I don't have any 32-bit nodes to test this on, and I'm not able to log into the test bed. |
| Comment by Andreas Dilger [ 12/May/11 ] |
|
I'm working on changing the testcase for this bug to determine why e2fsprogs is failing. Patches are being tested in change 543 (formerly change 531). |
| Comment by Andreas Dilger [ 13/May/11 ] |
|
Looking at a captured log file from a failed test on i686: it appears that e2fsck is failing because of the timestamps in the filesystem: #define EXT4_XTIME_FUTURE(ctx, sb, xtime, margin) \ if (EXT4_XTIME_FUTURE(ctx, sb, inode->i_ctime,ctx->time_fudge)|| f_messy_inode: bad file and directory acl pointers: failed Pass 1: Checking inodes, blocks, and sizes I haven't looked into the image or inodes yet, but I expect |
| Comment by Andreas Dilger [ 14/May/11 ] |
|
It seems that the s_mkfs_time is not set in the f_messy_inode superblock, so XTIME_ANCIENT was underflowing the (margin) calculation on 32-bit systems. |
| Comment by Andreas Dilger [ 19/May/11 ] |
|
Patch landed for e2fsprogs-1.41.90.wc2 |
| Comment by Build Master (Inactive) [ 19/May/11 ] |
|
Integrated in Andreas Dilger : 09d4c203d07572ce176bd041d6411d46f2effd6b
|
| Comment by Build Master (Inactive) [ 19/May/11 ] |
|
Integrated in Andreas Dilger : 09d4c203d07572ce176bd041d6411d46f2effd6b
|