tests from e2fsprogs-1.42.12-2.fc22 fails on s390(x) and ppc64 when the package is built with gcc 5, and they pass when gcc 4.9.2-5 is used from build.log ... make[1]: Entering directory '/builddir/build/BUILD/e2fsprogs-1.42.12/tests' Running e2fsprogs test suite... /usr/bin/cp ./mke2fs.conf.in mke2fs.conf Creating test_one script... f_dup_resize: blocks claimed by the resize inode and another inode: ok f_preen: preen shouldn't destroy backup superblocks: ok f_orphan: clearing orphan inodes: ok f_extents2: multiply claimed blocks in extents and other illegal extents: failed --- f_extents2/expect.1 2011-01-14 18:07:50.000000000 +0000 +++ f_extents2.1.log 2015-02-20 08:01:07.117925312 +0000 @@ -46,12 +46,19 @@ /ext2fs.h (inode #15, mod time Mon Jun 2 07:22:57 2008) Clone multiply-claimed blocks? yes +Error while iterating over blocks in inode 14 (clone_file): Corrupt extent header +Couldn't clone file: Corrupt extent header +Delete file? yes + +Error while iterating over blocks in inode 14 (delete_file): Corrupt extent header File /ext2fs.h (inode #15, mod time Mon Jun 2 07:22:57 2008) has 1 multiply-claimed block(s), shared with 1 file(s): /inode.c (inode #14, mod time Mon Jun 2 05:28:16 2008) Multiply-claimed blocks already reassigned or cloned. Pass 2: Checking directory structure +Entry 'inode.c' in / (2) has deleted/unused inode 14. Clear? yes + Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information @@ -66,5 +73,5 @@ test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** -test_filesys: 18/32 files (22.2% non-contiguous), 145/200 blocks +test_filesys: 17/32 files (23.5% non-contiguous), 145/200 blocks Exit status is 1 --- f_extents2/expect.2 2011-01-14 18:07:50.000000000 +0000 +++ f_extents2.2.log 2015-02-20 08:01:07.127925312 +0000 @@ -1,7 +1,24 @@ Pass 1: Checking inodes, blocks, and sizes +Inode 13 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 13, i_blocks is 28, should be 26. Fix? yes + Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information -test_filesys: 18/32 files (22.2% non-contiguous), 145/200 blocks -Exit status is 0 +Block bitmap differences: -(23--25) -35 -79 -(81--84) -(86--90) -(92--100) +Fix? yes + +Free blocks count wrong for group #0 (55, counted=78). +Fix? yes + +Free blocks count wrong (55, counted=78). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 17/32 files (17.6% non-contiguous), 122/200 blocks +Exit status is 1 f_bbfile: bad blocks in files: ok f_uninit_last_uninit: last group has BLOCK_UNINIT set: ok f_full_bg: inode table in last block of first bg: ok m_bigjournal: journal over 4GB in size: failed m_dasd_bs: 2048 byte sector devices: ok f_lpf2: create lost+found and reconnect lost directory: ok f_ext_journal: test external journal device: ok f_overfsblks: overlapping inode and block bitmaps: ok r_inline_xattr: shrinking filesystem with in-inode extended attributes: ok f_hurd: GNU/Hurd specific tests: ok ext2fs_mkdir: EXT2 directory corrupted while creating /lost+found r_meta_bg_shrink: meta_bg shrink: ok f_zero_xattr: zero length extended attribute in in-inode xattr: ok f_dup: blocks claimed by two different files: ok debugfs 1.42.12 (29-Aug-2014) f_badcluster: test alignment problems with bigalloc clusters: failed f_uninit_ext_past_eof: fallocated extents after i_size: ok f_extents: basic extents support: ok f_badprimary: bad blocks in the primary superblock and group descriptors: ok f_dupdot: duplicate '.' and '..' entries: ok f_clear_xattr: clearing i_file_acl when !ext_attr feature: ok f_h_badroot: bad htree root nodes: ok m_mkfs_overhead: test bg overhead calculation: ok f_bad_disconnected_inode: Disconnected inode with bad fields: ok f_badjour_indblks: corruption in journal inode's indirect blocks: ok f_badsymlinks: corrupted symlinks: ok f_bitmaps: corrupted inode and block bitmaps: ok f_illbbitmap: illegal block bitmap: ok f_holedir3: real directories with holes and zero i_size: failed --- f_holedir3/expect.1 2014-08-02 20:26:22.000000000 +0000 +++ f_holedir3.1.log 2015-02-20 08:01:09.217925312 +0000 @@ -1,13 +1,10 @@ Pass 1: Checking inodes, blocks, and sizes Directory inode 12 block 5 should be at block 2. Fix? yes -Inode 12, i_size is 6144, should be 3072. Fix? yes +Error storing directory block information (inode=12, block=5, num=0): Extent not found -Pass 2: Checking directory structure -Pass 3: Checking directory connectivity -Pass 4: Checking reference counts -Pass 5: Checking group summary information +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +e2fsck: aborted test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** -test_filesys: 17/128 files (5.9% non-contiguous), 1093/2048 blocks -Exit status is 1 +Exit status is 9 --- f_holedir3/expect.2 2014-08-02 20:26:22.000000000 +0000 +++ f_holedir3.2.log 2015-02-20 08:01:09.237925312 +0000 @@ -1,7 +1,45 @@ Pass 1: Checking inodes, blocks, and sizes +Inode 12 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 12, i_size is 6144, should be 2048. Fix? yes + +Inode 12, i_blocks is 6, should be 4. Fix? yes + Pass 2: Checking directory structure +Problem in HTREE directory inode 12 (/dir): bad block number 2. +Clear HTree index? yes + Pass 3: Checking directory connectivity +Pass 3A: Optimizing directories Pass 4: Checking reference counts +Unattached inode 15 +Connect to /lost+found? yes + +Inode 15 ref count is 2, should be 1. Fix? yes + +Unattached inode 16 +Connect to /lost+found? yes + +Inode 16 ref count is 2, should be 1. Fix? yes + +Unattached inode 17 +Connect to /lost+found? yes + +Inode 17 ref count is 2, should be 1. Fix? yes + Pass 5: Checking group summary information -test_filesys: 17/128 files (5.9% non-contiguous), 1093/2048 blocks -Exit status is 0 +Block bitmap differences: -1092 +Fix? yes + +Free blocks count wrong for group #0 (956, counted=957). +Fix? yes + +Free blocks count wrong (956, counted=957). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 17/128 files (5.9% non-contiguous), 1091/2048 blocks +Exit status is 1 f_imagic_fs: imagic filesystem with imagic inodes: ok f_messy_inode: bad file and directory acl pointers: ok f_orphan_extents_inode: truncating an orphaned extent-mapped inode: failed --- f_orphan_extents_inode/expect.1 2014-06-25 19:19:40.000000000 +0000 +++ f_orphan_extents_inode.1.log 2015-02-20 08:01:09.397925312 +0000 @@ -1,9 +1,25 @@ Truncating orphaned inode 12 (uid=0, gid=0, mode=0100644, size=0) +release_inode_blocks: Corrupt extent header while calling ext2fs_block_iterate for inode 12 Pass 1: Checking inodes, blocks, and sizes +Inode 12 has an invalid extent + (logical block 0, invalid physical block 0, len 0) +Clear? yes + +Inode 12, i_blocks is 64, should be 0. Fix? yes + Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information +Block bitmap differences: -18 -(20--34) -37 -(40--52) +Fix? yes + +Free blocks count wrong for group #0 (49, counted=79). +Fix? yes + +Free blocks count wrong (49, counted=79). +Fix? yes + test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** test_filesys: 12/16 files (0.0% non-contiguous), 21/100 blocks f_dup4: find all directory pathnames: ok f_invalid_extent_symlink: extent-mapped symlink with two blocks: ok f_salvage_dir: salvage corrupted directories: ok f_h_badnode: hash directory with bad HTREE nodes: ok f_baddir2: salvage last directory entry: ok ext2fs_mkdir: EXT2 directory corrupted while creating /lost+found r_ext4_small_bg: ext4 1024 blocksize with small block groups: failed i_e2image: create/convert raw/qcow2 images: ok m_no_opt: no filesystem extensions: ok t_quota_1on: enable quota using tune2fs: ok d_special_files: create special files in debugfs: ok f_badinode: corrupted inode entries: ok f_ext_zero_len: extent with zero length: ok f_invalid_bad_inode: check for bogus bad inode: ok f_big_sparse: big sparse file: ok f_desc_size_bad: bad superblock s_desc_size: failed f_dup_de2: duplicate directory entries for non-indexed dirs: ok f_lotsbad: too many illegal blocks in inode: ok ext2fs_mkdir: EXT2 directory corrupted while creating /lost+found r_ext4_big_expand: very large fs growth using ext4: failed m_quota: enable quota feature on mkfs: ok t_ext_jnl_rm: remove missing external journal device: ok f_hugedir_blocks: crash e2fsck with a dir with an impossibly high logical blk offset: ok f_extra_journal: Valid journal inode, but has_journal feature not present: ok m_large_file: largefile fs type: ok r_min_itable: resize2fs -M with inode table in middle of last block group: ok e_icount_normal: inode counting structure optimized for low counts: ok f_badroot: file in root directory inode: ok m_64bit_flexbg: mkfs with 64bit and flex_bg: failed f_imagic: non-imagic filesystem with imagic inodes: ok f_illitable_flexbg: illegal inode table with FLEX_BG: ok f_desc_size_128: 128-byte group descriptors: ok f_dirlink: directory hard links: ok f_journal: recover journal from corrupted inode table: ok e_brel_bma: block relocation table using the memory array implementation: skipped f_resize_inode: e2fsck with resize_inode: ok r_resize_inode: filesystem resize with a resize_inode present: ok ext2fs_mkdir: EXT2 directory corrupted while creating /lost+found r_64bit_big_expand: very large fs growth using ext4 w/64bit: failed u_mke2fs: e2undo with mke2fs: ok f_jnl_64bit: on-disk 64-bit journal format: ok f_holedir2: directories with holes and zero i_size: failed --- f_holedir2/expect.1 2014-08-02 20:26:22.000000000 +0000 +++ f_holedir2.1.log 2015-02-20 08:01:15.437925312 +0000 @@ -8,15 +8,16 @@ Pass 3: Checking directory connectivity Pass 3A: Optimizing directories +Failed to optimize directory ??? (13): EXT2 directory corrupted Pass 4: Checking reference counts Pass 5: Checking group summary information -Free blocks count wrong for group #0 (78, counted=77). +Free blocks count wrong for group #0 (75, counted=74). Fix? yes -Free blocks count wrong (78, counted=77). +Free blocks count wrong (75, counted=74). Fix? yes test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** -test_filesys: 13/16 files (7.7% non-contiguous), 23/100 blocks +test_filesys: 13/16 files (7.7% non-contiguous), 26/100 blocks Exit status is 1 --- f_holedir2/expect.2 2011-01-14 18:07:50.000000000 +0000 +++ f_holedir2.2.log 2015-02-20 08:01:15.447925312 +0000 @@ -1,7 +1,26 @@ Pass 1: Checking inodes, blocks, and sizes +Inode 13 has an invalid extent + (logical block 0, invalid physical block 0, len 3) +Clear? yes + +Inode 13, i_size is 4096, should be 1024. Fix? yes + +Inode 13, i_blocks is 8, should be 2. Fix? yes + Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information +Block bitmap differences: -(25--27) +Fix? yes + +Free blocks count wrong for group #0 (74, counted=77). +Fix? yes + +Free blocks count wrong (74, counted=77). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** test_filesys: 13/16 files (0.0% non-contiguous), 23/100 blocks -Exit status is 0 +Exit status is 1 f_toobig_extent_dir: directory with a very large lblk in extent: ok f_orphan_indirect_inode: truncating an orphaned inode in preen mode: ok f_file_acl_high: i_file_acl_high should be zero: ok e_icount_opt: inode counting abstraction optimized for counting: ok u_tune2fs: e2undo with tune2fs: ok f_holedir: directory with holes and illegal blocks: ok f_extent_bad_node: bad interior node in extent tree: failed --- f_extent_bad_node/expect.1 2011-01-14 18:07:50.000000000 +0000 +++ f_extent_bad_node.1.log 2015-02-20 08:01:15.797925312 +0000 @@ -2,22 +2,37 @@ Inode 12 has an invalid extent node (blk 22, lblk 0) Clear? yes -Inode 12, i_blocks is 16, should be 8. Fix? yes +Failed to iterate extents in inode 12 + (op ext2fs_extent_fix_parents, blk 22, lblk 0): Corrupt extent header +Clear inode? yes +Restarting e2fsck from the beginning... +Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure +Entry 'motd' in / (2) has deleted/unused inode 12. Clear? yes + Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information -Block bitmap differences: -(21--23) -25 +Block bitmap differences: -(21--28) +Fix? yes + +Free blocks count wrong for group #0 (71, counted=79). +Fix? yes + +Free blocks count wrong (71, counted=79). +Fix? yes + +Inode bitmap differences: -12 Fix? yes -Free blocks count wrong for group #0 (71, counted=75). +Free inodes count wrong for group #0 (4, counted=5). Fix? yes -Free blocks count wrong (71, counted=75). +Free inodes count wrong (4, counted=5). Fix? yes test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** -test_filesys: 12/16 files (0.0% non-contiguous), 25/100 blocks +test_filesys: 11/16 files (0.0% non-contiguous), 21/100 blocks Exit status is 1 --- f_extent_bad_node/expect.2 2011-01-14 18:07:50.000000000 +0000 +++ f_extent_bad_node.2.log 2015-02-20 08:01:15.807925312 +0000 @@ -3,5 +3,5 @@ Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information -test_filesys: 12/16 files (0.0% non-contiguous), 25/100 blocks +test_filesys: 11/16 files (0.0% non-contiguous), 21/100 blocks Exit status is 0 m_uninit: uninitialized group feature: ok f_badtable: bad blocks in bitmaps and inode table: ok f_noroot: missing root directory: ok f_unsorted_EAs: unsorted EAs in inode should not be deleted: ok m_desc_size_128: enable 128-byte group descriptor on mkfs: failed f_illibitmap: illegal inode bitmap: ok f_mmp/script: line 26: ps: command not found f_mmp: disable MMP with tune2fs after e2fsck killed: ok f_miss_journal: Non-existent journal inode: ok f_valid_ea_in_inode: valid ea-in-inode examplars: ok f_unused_itable: Don't move files to lost+found for bg_unused_itable: ok t_quota_2off: disable quota using tune2fs: ok f_dup2: blocks claimed by three different files: ok f_baddotdir: bad '.' and '..' entries: ok f_filetype: set filetype information and illegal special files: ok m_raid_opt: raid options: ok f_lpf: missing lost+found: ok f_lpffile: lost+found is not a directory: ok f_extent_oobounds: failed f_h_unsigned: Unsigned HTREE directory: ok m_std: standard filesystem options: ok f_first_meta_bg_too_big: s_first_meta_bg is too large: ok f_illitable: illegal inode table: ok f_zero_inode_size: superblock with a zero inode size: ok f_jnl_32bit: on-disk 32-bit journal format: ok f_jnl_errno: journal s_errno handling: ok m_extent_journal: extent-mapped journal: failed m_meta_bg: meta blockgroup feature: ok ext2fs_mkdir: EXT2 directory corrupted while creating /lost+found r_bigalloc_big_expand: ext4 with bigalloc: failed f_dir_bad_mode: directory with corrupted i_mode: ok f_special_ea: Special files with extended attributes: ok f_bbinode: bad blocks in inode table: ok f_zero_group: fallback for damaged group descriptors: ok f_8192_block: 8192 byte blocksize: ok m_root_owner: root directory owner: ok f_uninit_ext_past_eof2: fallocated extents after nonzero i_size and total extents > 4: ok f_recnect_bad: Reconnecting bad inode: ok f_end-bitmap: corruption at end of block bitmap: ok f_quota: fix incorrect usage stats in quota: failed f_extent_interior_start_lblk: incorrect starting lblk in an interior node: failed --- f_extent_interior_start_lblk/expect.1 2014-07-03 14:33:48.000000000 +0000 +++ f_extent_interior_start_lblk.1.log 2015-02-20 08:01:41.857925312 +0000 @@ -2,11 +2,37 @@ Interior extent node level 0 of inode 12: Logical start 0 does not match logical start 2 at next level. Fix? yes +Failed to iterate extents in inode 12 + (op ext2fs_extent_fix_parents, blk 0, lblk 2): Corrupt extent header +Clear inode? yes + +Restarting e2fsck from the beginning... +Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure +Entry 'foo' in / (2) has deleted/unused inode 12. Clear? yes + Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information +Block bitmap differences: -18 -(38--44) +Fix? yes + +Free blocks count wrong for group #0 (71, counted=79). +Fix? yes + +Free blocks count wrong (71, counted=79). +Fix? yes + +Inode bitmap differences: -12 +Fix? yes + +Free inodes count wrong for group #0 (4, counted=5). +Fix? yes + +Free inodes count wrong (4, counted=5). +Fix? yes + test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** -test_filesys: 12/16 files (0.0% non-contiguous), 29/100 blocks +test_filesys: 11/16 files (0.0% non-contiguous), 21/100 blocks Exit status is 1 --- f_extent_interior_start_lblk/expect.2 2014-07-03 14:33:48.000000000 +0000 +++ f_extent_interior_start_lblk.2.log 2015-02-20 08:01:41.867925312 +0000 @@ -3,5 +3,5 @@ Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information -test_filesys: 12/16 files (0.0% non-contiguous), 29/100 blocks +test_filesys: 11/16 files (0.0% non-contiguous), 21/100 blocks Exit status is 0 f_dupfsblks: blocks claimed by a file and bitmaps or inode tables: ok f_badbblocks: illegal blocks in bad block inode: ok e_irel_ima: inode relocation table using the memory array implementation: skipped f_bad_local_jnl: test for corrupt local journal (bad V1->V2 journal upgrade): ok f_zero_super: fallback for damaged superblock: ok f_baddir: corrupted directory entries: ok f_crashdisk: Superblock with illegal values: ok f_orphan_dotdot_ft: filetype of .. in orphaned directories: ok f_mmp_garbage: repair MMP when it is corrupted: ok t_mmp_2off: disable MMP using tune2fs: ok f_misstable: missing inode table: ok f_rehash_dir: optimize htree directories: failed t_mmp_1on: enable MMP using tune2fs: ok f_dup3: blocks claimed by one file multiple times: ok f_badjourblks: Illegal blocks in journal inode (and backup in superblock): ok f_badorphan: corrupted orphan list: ok f_ea_checks: extended attribute block checks: ok f_h_reindex: reindex HTREE Directory with different hash seed: ok f_okgroup: 8193 block long filesystem: ok f_selinux: SE Linux generated symlinks with EA data: ok f_fast_symlink_extents: fast symlink with extents flag set: ok f_16384_block: 16384 byte blocksize: ok d_loaddump: debugfs load/dump test: ok f_readonly_fsck: ensure that a readonly check doesn't modify the fs: ok f_boundscheck: infinite loop due to off by one error when finding free space for inode table relocation: ok f_dup_ba: multiply claimed blocks with bigalloc: failed --- f_dup_ba/expect.1 2014-07-06 04:13:18.000000000 +0000 +++ f_dup_ba.1.log 2015-02-20 08:02:39.427925312 +0000 @@ -25,6 +25,11 @@ /6 (inode #17, mod time Sun Nov 27 04:39:32 2011) Clone multiply-claimed blocks? yes +Error while iterating over blocks in inode 16 (clone_file): Corrupt extent header +Couldn't clone file: Corrupt extent header +Delete file? yes + +Error while iterating over blocks in inode 16 (delete_file): Corrupt extent header File /6 (inode #17, mod time Sun Nov 27 04:39:32 2011) has 1 multiply-claimed block(s), shared with 1 file(s): /5 (inode #16, mod time Sun Nov 27 04:39:31 2011) @@ -33,37 +38,39 @@ File /7 (inode #18, mod time Sun Nov 27 04:39:33 2011) has 1 multiply-claimed block(s), shared with 1 file(s): /5 (inode #16, mod time Sun Nov 27 04:39:31 2011) -Multiply-claimed blocks already reassigned or cloned. +Clone multiply-claimed blocks? yes File /8 (inode #19, mod time Sun Nov 27 04:39:34 2011) has 1 multiply-claimed block(s), shared with 1 file(s): /5 (inode #16, mod time Sun Nov 27 04:39:31 2011) -Multiply-claimed blocks already reassigned or cloned. +Clone multiply-claimed blocks? yes File /9 (inode #20, mod time Sun Nov 27 04:39:35 2011) has 1 multiply-claimed block(s), shared with 1 file(s): /5 (inode #16, mod time Sun Nov 27 04:39:31 2011) -Multiply-claimed blocks already reassigned or cloned. +Clone multiply-claimed blocks? yes File /10 (inode #21, mod time Sun Nov 27 04:39:36 2011) has 1 multiply-claimed block(s), shared with 1 file(s): /5 (inode #16, mod time Sun Nov 27 04:39:31 2011) -Multiply-claimed blocks already reassigned or cloned. +Clone multiply-claimed blocks? yes Pass 2: Checking directory structure +Entry '5' in / (2) has deleted/unused inode 16. Clear? yes + Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Block bitmap differences: +240 Fix? yes -Free blocks count wrong for group #0 (49, counted=43). +Free blocks count wrong for group #0 (48, counted=42). Fix? yes -Free blocks count wrong (784, counted=688). +Free blocks count wrong (768, counted=672). Fix? yes test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** -test_filesys: 21/64 files (0.0% non-contiguous), 336/1024 blocks +test_filesys: 20/64 files (0.0% non-contiguous), 352/1024 blocks Exit status is 1 --- f_dup_ba/expect.2 2014-06-25 19:19:15.000000000 +0000 +++ f_dup_ba.2.log 2015-02-20 08:02:39.437925312 +0000 @@ -1,7 +1,74 @@ Pass 1: Checking inodes, blocks, and sizes +Inode 18 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 18 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 18 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 18, i_blocks is 128, should be 0. Fix? yes + +Inode 19 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 19 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 19 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 19, i_blocks is 128, should be 0. Fix? yes + +Inode 20 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 20 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 20 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 20, i_blocks is 128, should be 0. Fix? yes + +Inode 21 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 21 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 21 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 21, i_blocks is 128, should be 0. Fix? yes + Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information -test_filesys: 21/64 files (4.8% non-contiguous), 336/1024 blocks -Exit status is 0 +Block bitmap differences: -144 -(176--336) +Fix? yes + +Free blocks count wrong for group #0 (42, counted=54). +Fix? yes + +Free blocks count wrong (672, counted=864). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 20/64 files (0.0% non-contiguous), 160/1024 blocks +Exit status is 1 f_dupsuper: blocks claimed by a file and superblock or group descriptors: ok r_1024_small_bg: ext2 1024 blocksize with small block groups: ok f_miss_blk_bmap: missing block bitmap: ok f_summary_counts: incorrect inode/block free counts: ok r_move_itable: filesystem resize which requires moving the inode table: ok f_mke2fs2b: mke2fs version 0.2b created filesystem: ok f_expand: expanding lost+found: ok f_eofblocks: blocks after i_size: ok f_emptydir: always iterate dir block 0 or e2fsck goes into infinite loop: ok f_uninit_dir: fix uninit flag on directory extents and check the dir blocks: failed --- f_uninit_dir/expect.1 2014-08-02 20:26:22.000000000 +0000 +++ f_uninit_dir.1.log 2015-02-20 08:02:47.427925312 +0000 @@ -19,9 +19,14 @@ '..' in /abc (14) is <The NULL inode> (0), should be / (2). Fix? yes +Couldn't fix parent of inode 14: EXT2 directory corrupted + Pass 4: Checking reference counts Pass 5: Checking group summary information test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** + +test_filesys: ********** WARNING: Filesystem still has errors ********** + test_filesys: 14/128 files (0.0% non-contiguous), 20/512 blocks -Exit status is 1 +Exit status is 4 --- f_uninit_dir/expect.2 2014-08-02 20:26:22.000000000 +0000 +++ f_uninit_dir.2.log 2015-02-20 08:02:47.447925312 +0000 @@ -1,7 +1,50 @@ Pass 1: Checking inodes, blocks, and sizes +Inode 12 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 12 is a zero-length directory. Clear? yes + +Inode 14 has an invalid extent + (logical block 0, invalid physical block 0, len 1) +Clear? yes + +Inode 14 is a zero-length directory. Clear? yes + Pass 2: Checking directory structure +Entry 'xyz' in / (2) has deleted/unused inode 12. Clear? yes + +Entry 'abc' in / (2) has deleted/unused inode 14. Clear? yes + Pass 3: Checking directory connectivity Pass 4: Checking reference counts +Inode 2 ref count is 5, should be 3. Fix? yes + +Unattached zero-length inode 13. Clear? yes + Pass 5: Checking group summary information -test_filesys: 14/128 files (0.0% non-contiguous), 20/512 blocks -Exit status is 0 +Block bitmap differences: -10 -19 +Fix? yes + +Free blocks count wrong for group #0 (492, counted=494). +Fix? yes + +Free blocks count wrong (492, counted=494). +Fix? yes + +Inode bitmap differences: -12 -14 +Fix? yes + +Free inodes count wrong for group #0 (115, counted=117). +Fix? yes + +Directories count wrong for group #0 (4, counted=2). +Fix? yes + +Free inodes count wrong (115, counted=117). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/128 files (0.0% non-contiguous), 18/512 blocks +Exit status is 1 f_dup_de: duplicate directory entries: ok m_mmp: enable MMP during mke2fs: ok f_h_normal: Normal (signed) HTREE directory: ok f_reconnect: simple disconnected file inode: ok 135 tests succeeded 21 tests failed Tests failed: f_badcluster f_desc_size_bad f_dup_ba f_extent_bad_node f_extent_interior_start_lblk f_extent_oobounds f_extents2 f_holedir2 f_holedir3 f_orphan_extents_inode f_quota f_rehash_dir f_uninit_dir m_64bit_flexbg m_bigjournal m_desc_size_128 m_extent_journal r_64bit_big_expand r_bigalloc_big_expand r_ext4_big_expand r_ext4_small_bg Makefile:338: recipe for target 'test_post' failed make[1]: Leaving directory '/builddir/build/BUILD/e2fsprogs-1.42.12/tests' make[1]: *** [test_post] Error 1 Makefile:372: recipe for target 'check-recursive' failed make: *** [check-recursive] Error 1 for full logs see http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1736562 http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2361011 My suspicion is the gcc5, but please review whether it could be e2fsprogs issue first. Version-Release number of selected component (if applicable): e2fsprogs-1.42.12-2.fc22
for the record - the tests pass on ppc64le - http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2361338 - so big endian AND gcc5 related
also a build with -O1 makes the tests pass, so switching to gcc, narrowing the cause will follow
Do you think you can reduce some self-contained testcase?
yes, Michal (added to CC) is working on that
Started with http://gcc.gnu.org/r210843 (not really surprising, given how often something like that occurs in the extent.c and other sources).
Self-contained testcase for -O2: static inline unsigned int foo (unsigned int x) { return (x >> 24) | ((x >> 8) & 0xFF00) | ((x << 8) & 0xFF0000) | (x << 24); } __attribute__((noinline, noclone)) unsigned int bar (unsigned long *x) { return foo (*x); } int main () { unsigned long l = foo (0xdeadbeefU) | 0xfeedbea800000000ULL; if (bar (&l) != 0xdeadbeefU) __builtin_abort (); return 0; }
i confirmed that the latest gcc-5.0.0-0.17 fixes this issue in e2fsproc on ppc. I'm testing it on s390 and will report the results today.
gcc-5.0.0-0.17.fc22 has been submitted as an update for Fedora 22. https://admin.fedoraproject.org/updates/gcc-5.0.0-0.17.fc22
Package gcc-5.0.0-0.17.fc22: * should fix your issue, * was pushed to the Fedora 22 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing gcc-5.0.0-0.17.fc22' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2015-2759/gcc-5.0.0-0.17.fc22 then log in and leave karma (feedback).
Proposed as a Freeze Exception for 22-alpha by Fedora user sharkcz using the blocker tracking app because: gcc-5.0.0-0.17.fc22 contains a fix for critical issue on big endian arches (earlier version produce wrong code)
Discussed at today's blocker review meeting [1]. This bug was accepted as Freeze Exception - This is provisionally granted FE status pending input from releng regarding potential impacts. We will check this further with relengs and developers before it will get pulled through the freeze http://meetbot.fedoraproject.org/fedora-blocker-review/2015-03-02/
gcc-5.0.0-0.17.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.